(二)Redis在Mac下的安装与SpringBoot中的配置
1 下载Redis
- 官网下载,下载 stable 版本,稳定版本。
建议下载5.0.8版本的Redis
2 本地安装
- 解压:
tar zxvf redis-5.0.8.tar.gz
- 移动到: sudo
mv redis-5.0.8 /usr/local/
- 切换到:
cd /usr/local/redis-5.0.8/
- 编译测试
sudo make test
- 编译安装
sudo make install
3 Redis 的启动与停止
启动方式:直接启动 Redis: redis-server
,成功后会看到下图:
关闭方式:登陆客户端,在客户端执行 SHUTDOWN
可关闭 redis 服务,如果关闭不了就加一个参数,执行SHUTDOWN NOSAVE
可关闭redis 服务,其中:
登陆客户端方式:redis-cli
设置为后台启动:https://blog.csdn.net/ksdb0468473/article/details/52126009
设置完毕后启动命令为:redis-server redis.conf
查看是否启动成功:ps -ef | grep redis
4 客户端常用命令
命令 | 用途 |
---|---|
set key value | 设置 key 的值 |
get key | 获取 key 的值 |
exists key | 查看此 key 是否存在,存在返回1,不存在返回0 |
keys * | 查看所有的 key |
del key | 删除指定key,若成功则返回1,否则返回0 |
flushall | 消除所有的 key |
用法如下:
5 SpringBoot整合Redis
pom依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.7.RELEASE</version> </dependency>
在配置文件application.properities中加入Redis的连接配置:
spring.redis.host=127.0.0.1 spring.redis.port=6379
Redis自定义注入Bean组件配置:
package com.practice.demo.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; /** * 配置Redis的两个操作组件:RedisTemplate & StringRedisTemplate * */ @Configuration public class CommonConfig { @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean public RedisTemplate<String, Object> redisTemplate(){ RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); return redisTemplate; } @Bean public StringRedisTemplate stringRedisTemplate(){ StringRedisTemplate stringRedisTemplate = new StringRedisTemplate(); stringRedisTemplate.setConnectionFactory(redisConnectionFactory); return stringRedisTemplate; } }
Redis读写字符串测试Demo如下,需要注意的是,Redis除了支持字符串外,还支持列表、集合、有序集合、哈希存储等多种数据结构。
package com.practice.demo.config; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.assertj.core.util.Lists; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.ListOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.SetOperations; import org.springframework.data.redis.core.ValueOperations; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.*; import java.util.concurrent.TimeUnit; @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class RedisTest { @Autowired private RedisTemplate redisTemplate; /********************字符串类型********************/ /** * 读写变量 */ @Test public void writeAndRead() { String key = "redisKey"; String value = "redisValue"; ValueOperations valueOperations = redisTemplate.opsForValue(); // 设置数据存在的时间 valueOperations.set(key, value, 10, TimeUnit.SECONDS); Object result = valueOperations.get(key); System.out.println("读取的内容:" + result); } }
注意在启动前需要先将Redis启动,如果运行上述Demo后的结果与下面一致,说明Redis在SpringBoot中的配置正确。
有疑问欢迎留言