Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,它以键值对的形式将数据存在内存中,并提供灵活、高性能的数据访问方式。Redis具有高速读写能力和丰富的数据结构支持,可以广泛应用于缓存、消息队列、实时统计分析、任务队列等场景。
下面是Redis的简单使用及应用场景介绍:
1. 键值存储:Redis通过键值对的方式存储数据,其中键是独一无二的,可以使用各种数据类型的键和值,如字符串、列表、哈希表、集合和有序集等。
2. 缓存:Redis可以作为缓存层,将常用的数据存储于内存中,减少数据库的查询压力,提升系统的访问速度。
3. 消息队列:Redis提供了发布/订阅机制,可以作为消息队列使用,实现异步消息传递和解耦。
4. 实时统计分析:Redis的高性能和支持原子操作的特性,使得它可以用于实时统计分析,如在线用户统计、页面访问量统计等。
5. 任务队列:通过Redis的列表数据类型,可以将任务添加到列表中,实现任务队列,其他进程或线程可以通过消费任务列表来处理任务。
6. 分布式锁:通过Redis的SETNX命令可以实现分布式锁,用于解决多个进程或线程同时访问共享资源时的并发问题。
下面提及一些redis的使用:
1.首先就是redis的下载
首先就是github:1、Github下载地址:Releases · microsoftarchive/redis · GitHub
也可以在我的资源绑定里面有redis的压缩包
2.将下载后的安装包进行解压缩
3.第三步就是启动redis了
进入到redis 的根目录,输入以下命令即可启动:redis-server.exe redis.windows.conf
2.可以使用redis自带的客户端工具进行测试 redis-cli.exe 直接点击既可以,输入ping,出现PONG就可。
接下来测试进行简单的测试set 和get
一般情况下还是需要使用到可视化工具的
安装好可视化工具后,需要新添加一个链接,ip和端口号是必须要添加的。
在这里便可以看到我刚刚用redis自带工具的所添加的内容。
而我们的redis,主要是使用到项目当中,下面以springboot项目为例:
使用Redis在Spring Boot项目中,可以按照以下步骤进行配置和使用:
步骤1:添加依赖
在项目的pom.xml文件中添加Redis依赖:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
步骤2:配置Redis连接信息
在application.properties或application.yml文件中添加Redis连接信息:
spring.redis.host=127.0.0.1
spring.redis.port=6379
这里需要将`host`和`port`替换为你使用的具体值。步骤3:创建Redis配置类
在项目中创建一个Redis的配置类,用于配置RedisTemplate和Redis连接工厂:
- @Configuration
- public class RedisConfig {
-
- @Value("${spring.redis.host}")
- private String redisHost;
-
- @Value("${spring.redis.port}")
- private int redisPort;
-
- @Bean
- public RedisConnectionFactory redisConnectionFactory() {
- RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(redisHost, redisPort);
- return new JedisConnectionFactory(config);
- }
-
- @Bean
- public RedisTemplate<String, Object> redisTemplate() {
- RedisTemplate<String, Object> template = new RedisTemplate<>();
- template.setConnectionFactory(redisConnectionFactory());
- return template;
- }
- }
步骤4:使用Redis
你可以在任何需要使用Redis的地方通过自动注入RedisTemplate来进行操作,例如:
- @Autowired
- private RedisTemplate<String, Object> redisTemplate;
-
- public void setValue(String key, Object value) {
- redisTemplate.opsForValue().set(key, value);
- }
-
- public Object getValue(String key) {
- return redisTemplate.opsForValue().get(key);
- }
这里的`setValue`和`getValue`方法分别用于设置和获取Redis中的值。