redis
springBoot整合redis
maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
yml配置
spring:
redis:
database: 3
host: 120.79.118.165
port: 6388
password: elinker123456 # 密码(默认为空)
timeout: 20000ms # 连接超时时长(毫秒)
jedis:
pool:
max-active: 1000 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5 # 连接池中的最小空闲连接
引入
我一般String类型操作使用redisUtils,其他类型使用redisTemplate。
@Autowired
private RedisUtils redisUtils;
@Autowired
private RedisTemplate<String ,Object> redisTemplate;
工具类
五种数据类型的使用
jedis
RedisTemplate使用(大神)
String(常用)
字符串操作基本使用RedisUtil操作,而且语法简单,简单过一下
// 字符串操作
redisUtils.set("str", "aaaaaa");
//自增
redisUtils.incr("count:elk:num");
// 删除
redisUtils.delete(key)
Hash(常用)
HashOperations<String, String, Object> opsHash = redisTemplate.opsForHash();
long longId = redisUtils.incr("sumHID2");
String sumHID = String.valueOf(longId);
Map<String,String> map = new HashMap<>();
map.put("id",accessRedis.getAccessId()+"");
// 保存hash数据
opsHash.putAll("sumH:"+sumHID,map);
// 设置失效时间
redisTemplate.expire("sumH:"+sumHID,24, TimeUnit.HOURS);
// 根据key获取hash数据
Map<String,Object> access = opsHash.entries("sumH:"+sumHID);
// 获取全部key值(鸡肋)
Set keys3 = opsHash.keys("HashKey")
List
ListOperations opsList = redisTemplate.opsForList();
opsList.leftPush("listKey", "listLeftValue5");
opsList.rightPush("listKey", "listRightValue6");
redisTemplate.expire("listKey",1,TimeUnit.MINUTES);
// 获取List缓存全部内容(起始索引,结束索引)
List listKey1 = redisTemplate.boundListOps("listKey").range(0, 10);
// 从左或从右弹出一个元素
String listKey2 = (String) redisTemplate.boundListOps("listKey").leftPop(); //从左侧弹出一个元素
String listKey3 = (String) redisTemplate.boundListOps("listKey").rightPop(); //从右侧弹出一个元素
Set
//通过ValueOperations设置值
SetOperations setOps = redisTemplate.opsForSet();
setOps.add("setKey", "SetValue1", "setValue2", "setValue3");
// 设置过期时间
redisTemplate.expire("setKey",1,TimeUnit.MINUTES);
// 根据key获取set值
Set set3 = setOps.members("setKey");
Zset(很少用,懒得写了)
ZSetOperations zSetOps = redisTemplate.opsForZSet();
// key 值 序号
zSetOps.add("zSetKey", "zSetVaule", 100D);