redission和spring整合配置
一. 哨兵模式配置
spring:
redis:
sentinel:
master: lsnrrdscmdbp01 # 这个由redis团队提供, 主节点名称
nodes:
- ip:26379
- ip:26379
- ip:26379
password: 密码
二. 集群版(非哨兵模式)
spring:
redis:
cluster:
nodes:
- IP1:Port
- IP2:Port
- IP3:Port
connectionTimeout: 6000
soTimeout: 6000
maxAttempts: 5
password: 密码
三. 单机版配置
spring:
redis:
database: 0
host: ip
port: 6379
password: 密码
timeout: 1000
四. pom.xml文件
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-web</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
<exclusion>
<artifactId>netty-common</artifactId>
<groupId>io.netty</groupId>
</exclusion>
<exclusion>
<artifactId>netty-codec</artifactId>
<groupId>io.netty</groupId>
</exclusion>
<exclusion>
<artifactId>netty-handler</artifactId>
<groupId>io.netty</groupId>
</exclusion>
</exclusions>
<version>3.15.3</version>
</dependency>
五. 常用示例
@Autowired
private RedissonClient redissonClient;
1. map方式存储, 例如: 用户名作为key, token作为值
RMap<Object, Object> map = redissonClient.getMap("logged_in_user_account_map");
map.put(userInfo.getUserAccount(), token);
2. bucket方式存储用户信息
RBucket<Object> bucket = redissonClient.getBucket("login_user_entity" + token); // 获取一个bucket桶(如果存在则直接获取, 不存在则会新建一个)
bucket.set(userInfo, 30, TimeUnit.MINUTES); // 存储过期30分种钟
bucket.set(userInfo); // 存储
bucket.getAndDelete(); // 删除
bucket.expire(30, TimeUnit.MINUTES); // 用户登陆状态,进行续期
UserLoginInfo userInfo = (UserLoginInfo) bucket.get(); // 获取用户信息