RedisTemplate常用数据存储API

1、String类型数据

1.1 存储值

// 保存一个key为a,值为“我是A”的数据
redisTemplate.boundValueOps("abc").set("我是A");

1.2 查询值

// 获取一个key为abc的值
String abcValue = (String)redisTemplate.boundValueOps("abc").get();

1.3 修改值

// 修改key为abc的值,并设置过期时间为5秒
redisTemplate.boundValueOps("abc").set("我是B",5, TimeUnit.SECONDS);
// 修改key为abc的值,并获取修改前的值
String abcValue = (String)redisTemplate.boundValueOps("abc").getAndSet("我是B",5, TimeUnit.SECONDS); // abcValue的值为修改前的值

1.4 自增

// 创建一个key为number的数据,值为1(储存的值必须是long或者double),然后实现获取值的时候自增1
BoundValueOperations number = redisTemplate.boundValueOps("number");
number.set(1);
number.increment(1);

2、Hash类型数据

2.1 存储值

// 保存一个键为“我是A”,值为“AAA”的数据,redis的key为abc
redisTemplate.boundHashOps("abc").put("name","AAA");
// 批量保存
Map<String, Object> map = new HashMap();
map.put("name","abc");
map.put("age",18);
redisTemplate.boundHashOps("abc").putAll(map);

2.2 查询值

BoundHashOperations a = redisTemplate.boundHashOps("abc");
// 获取key为abc的数据,并且数据里面的键为“我是A”
String name = (String)a.get("name");
// 获取所有键
Set keys = a.keys(); // keys值为:[age, name]
// 获得所有值
List values = a.values(); // values值为:[18, abc]
// 获得键值对
Map entries = a.entries(); // 值为:{age=18, name=abc}

2.3 自增

// 创建一个key为number的数据,值为{count=1},然后实现获取值的时候自增1
BoundHashOperations number = redisTemplate.boundHashOps("number");
number.increment("count",1);

3、List类型数据

3.1 存储值

// 从链表左边储存数据
BoundListOperations a = redisTemplate.boundListOps("abc");
a.leftPush("a");
// 从链表右边储存数据
a.rightPush("b");

3.2 取出值

BoundListOperations a = redisTemplate.boundListOps("abc"); // 假设abc里面的数据为[a,b,c,d]
// 左边弹出一个值
a.leftPop(); // abc里面的值为[b,c,d],弹出的值为a
// 然后右边弹出一个值
a.rightPop(); // abc里面的值为[b,c],弹出的值为d

3.3 查询值

BoundListOperations a = redisTemplate.boundListOps("abc"); // 假设abc里面的数据为[a,b,c,d]
// 获取abc中,索引从0到2的值,把end的值改为-1表示到最后一位
List range = a.range(0, 2); // range值为[a,b,c]
// 获取abc中,索引为1的值
String index = (String) a.index(1); // index值为b

4、Set类型数据

4.1 存储值

// 批量添加数据,还可以放集合、数组、
BoundSetOperations a = redisTemplate.boundSetOps("abc");
a.add("a","b","c");

4.2 获取值

// 假设abc里面的值为a,b,c
BoundSetOperations a = redisTemplate.boundSetOps("abc");
// 获取所有值
Set members = a.members(); // members值为[a, c, b]
// 随机获取2个值
List list = a.randomMembers(2); // list的值为[b, c]
// 随机获取一个值
String value = (String) a.randomMember(); // value的值为b

4.3 弹出、移除

// 假设abc里面的值为a,b,c
BoundSetOperations a = redisTemplate.boundSetOps("abc");
// 随机弹出一个元素
a.pop();
// 移除元素
a.remove();

5、ZSet数据类型

5.1 存储值

// 存储值同时需要带上分数
BoundZSetOperations a = redisTemplate.boundZSetOps("abc");
a.add("a",1);
a.add("b",2);
a.add("c",3);

5.2 获取值

// 获取指定区间的值,end值为-1表示到最后一位
Set range = a.range(0, -1); // range值为[a,b,c]

5.3 移除值

// 移除值为b的数据
a.remove("b");

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/CLOI_IOLC/article/details/109646865

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RedisTemplate常用方法包括: 1. 判断是否有某个key对应的值,使用`redisTemplate.hasKey(key)`,返回true表示存在,返回false表示不存在。 2. 获取某个key对应的值,使用`redisTemplate.opsForValue().get(key)`。 3. 删除单个key,使用`redisTemplate.delete(key)`。 4. 删除多个key,使用`redisTemplate.delete(keys)`,其中keys为一个key的集合。 5. 序列化当前传入的key值,使用`redisTemplate.dump(key)`。 6. 设置某个key的过期时间,使用`redisTemplate.expire(key, timeout, unit)`,其中timeout为过期时间,unit为时间单位。 7. 设置某个key在指定时间点过期,使用`redisTemplate.expireAt(key, date)`,其中date为过期时间点。 8. 查找匹配的key值,返回一个Set集合类型,使用`redisTemplate.keys(pattern)`,其中pattern为匹配的模式。 9. 重命名某个key,使用`redisTemplate.rename(oldKey, newKey)`。 10. 如果旧的key存在,则将旧的key改为新的key,使用`redisTemplate.renameIfAbsent(oldKey, newKey)`。 11. 从Redis中随机取出一个key,使用`redisTemplate.randomKey()`。 12. 返回某个key的剩余过期时间,使用`redisTemplate.getExpire(key)`。 13. 返回某个key的剩余过期时间,并指定时间单位,使用`redisTemplate.getExpire(key, unit)`,其中unit为时间单位。 14. 将某个key持久化保存,使用`redisTemplate.persist(key)`。 15. 将某个key移动到指定的Redis数据库中,使用`redisTemplate.move(key, dbIndex)`,其中dbIndex为目标数据库的索引。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值