Springboot2默认情况下使用lettuce框架访问Redis,只需要在pom.xml文件添加以下依赖即可:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
在需要访问Redis的类中注入StringRedisTemplate实例:
@Autowired StringRedisTemplate stringRedisTemplate;
String(字符串):
private void testValue(){ ValueOperations<String, String> value = stringRedisTemplate.opsForValue(); value.getOperations().delete("aaa"); //删除 value.getOperations().delete("bbb"); value.set("aaa", "123"); //set System.out.println(value.setIfAbsent("aaa", "123")); //没有才set System.out.println(value.size("aaa")); //长度 System.out.println(value.get("aaa")); //获取值 value.append("aaa", "456"); //追加 System.out.println(value.get("aaa")); value.increment("bbb", 1); //数值自增 System.out.println(value.get("bbb")); value.multiGet(Arrays.asList("aaa", "bbb", "ccc")) .stream().forEach(System.out::println); }
Hash(散列):
private void testHash(){ HashOperations<String, String, String> hash = stringRedisTemplate.opsForHash(); hash.getOperations().delete("hash1"); hash.put("hash1", "aaa", "111"); //put hash.put("hash1", "bbb", "222"); hash.put("hash1", "ccc", "333"); System.out.println(hash.size("hash1")); //长度 hash.entries("hash1").forEach((k,v) -> { //显示所有的key和value System.out.println(k + "=" + v); }); hash.keys("hash1").stream().forEach(System.out::println); //显示所有的key hash.values("hash1").stream().forEach(System.out::println); //显示所有的value System.out.println(hash.putIfAbsent("hash1", "aaa", "aaa")); //没有key才put hash.increment("hash1", "count", 1); //数值自增 System.out.println(hash.get("hash1", "count")); hash.increment("hash1", "count", 1); System.out.println(hash.get("hash1", "count")); hash.increment("hash1", "count", -1); System.out.println(hash.get("hash1", "count")); System.out.println(hash.hasKey("hash1", "amount")); //判断key是否存在 System.out.println(hash.get("hash1", "count")); hash.delete("hash1", "count"); //删除 }
Set(集合):
private void testSet(){ SetOperations<String, String> set = stringRedisTemplate.opsForSet(); set.getOperations().delete("set1"); set.getOperations().delete("set2"); set.add("set1", "111", "222", "333", "111"); set.add("set2", "222", "333", "444"); System.out.println(set.size("set1")); //长度 System.out.println(set.members("set1")); //获取所有值 System.out.println(set.members("set2")); System.out.println(set.difference("set1", "set2")); //从前者取得与后者不一样的元素 System.out.println(set.intersect("set1", "set2")); //交集 System.out.println(set.union("set1", "set2")); //并集 set.remove("set1", "111"); //删除一个元素 System.out.println(set.pop("set1")); //弹出一个元素 System.out.println(set.randomMember("set2")); //随机取一个元素 System.out.println(set.isMember("set2", "444")); //给定元素是否是成员 set.move("set2", "444", "set1"); //移动 System.out.println(set.members("set1")); }
List(列表):
private void testList() { ListOperations<String, String> list = stringRedisTemplate.opsForList(); list.getOperations().delete("list"); //清空 list.leftPush("list", "111"); //push 放到list中 list.leftPushIfPresent("list", "222"); list.rightPush("list", "333"); list.rightPushIfPresent("list", "444"); System.out.println(list.index("list", 0)); System.out.println(list.range("list", 0, -1)); list.trim("list", 0, 2); //截取 System.out.println(list.range("list", 0, -1)); System.out.println(list.leftPop("list")); //pop 取出消费掉 System.out.println(list.rightPop("list")); }
Zset(有序集合):
private void testZSet(){ ZSetOperations<String, String> zset = stringRedisTemplate.opsForZSet(); zset.getOperations().delete("zset1"); zset.getOperations().delete("zset2"); zset.add("zset1", "aaa", 1); zset.add("zset1", "bbb", 1); zset.add("zset1", "ccc", 1); zset.add("zset2", "bbb", 1); zset.add("zset2", "ccc", 1); zset.add("zset2", "ddd", 1); System.out.println(zset.size("zset1")); //长度 System.out.println(zset.range("zset1", 0, -1)); //取所有元素 zset.incrementScore("zset1", "bbb", 1); //增加分数score zset.incrementScore("zset1", "aaa", 2); System.out.println(zset.range("zset1", 0, -1)); //分数递增排序 zset.rangeWithScores("zset1", 0, -1).stream().forEach(t -> { System.out.println(t.getValue() + "-" + t.getScore()); }); System.out.println(zset.reverseRange("zset1", 0, -1)); //分数递减排序 zset.reverseRangeWithScores("zset1", 0, -1).stream().forEach(t -> { System.out.println(t.getValue() + "-" + t.getScore()); }); System.out.println(zset.rank("zset1", "ccc")); //分数递增排序,取元素的索引 System.out.println(zset.reverseRank("zset1", "ccc")); //分数递减排序,取元素的索引 System.out.println(zset.score("zset1", "bbb")); //取元素的分数 zset.remove("zset2", "bbb"); //删除元素 System.out.println(zset.range("zset2", 0, -1)); }
相关推荐
springboot整合redis(附带redis的windows版).将redis放在了项目的目录中
主要介绍了SpringBoot中Shiro缓存使用Redis、Ehcache的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
springboot中使用MongoDB,Redis,swagger2,lombok,RocketMQ简单示例源码
springboot集成redis集群,redis安装包配置,参考文章:https://blog.csdn.net/zhizhuodewo6/article/details/82316164
Spring Boot 使用 AOP 和 Redis 实现接口限流是一种高效且实用的方法,用于控制对特定接口的访问频率。以下是实现这个功能的基本步骤: 引入依赖:首先,在 Spring Boot 项目中引入 Redis 和 AOP 的相关依赖。这...
基于springboot 2.1 + shiro + redis + layUI构建的通用后台权限管理系统模板(源码+数据库),项目经过严格测试,确保可以运行! 基于springboot 2.1 + shiro + redis + layUI构建的通用后台权限管理系统模板...
Java开发基于SpringBoot+WebSocket+Redis分布式即时通讯群聊系统。一个基于Spring Boot + WebSocket + Redis,可快速开发的分布式即时通讯群聊系统。适用于直播间聊天、游戏内聊天、客服聊天等临时性群聊场景。 ...
基于SpringBoot框架开发的博客系统,采用了springBoot、springSecurity、Redis、elasticSearch、rabbitmq、Mybatis、Nginx等技术,主要实现了博文管理、统计图表、访问记录、附件管理、用户管理、友链管理、监控管理...
文章是redisUtils工具类的封装,和基于springboot环境的单元测试; 文中封装了redis的众多方法,希望对您有所帮助。
springboot整合redis.算是比较全面的一种整合方式了. springboot整合redis.算是比较全面的一种整合方式了.
SpringBoot,注解实现Redis 库的切换。
Springboot整合Redis集群,零配置方式;另外用AOP实现了操作缓存的三套自定义注解,有兴趣的小伙伴可以试试看.
SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+...
springboot_springcache_redis入门实例,共同学习进步
springboot+netty+websocket+redis 分布式聊天,实现简单的聊天功能
docker-compose启动springboot项目-springboot+redis实战案例。可以参考文章:https://blog.csdn.net/Ber_Bai/article/details/119995240
SpringBoot项目 MybatisPlus使用 Redis缓存.zip
基于SpringBoot + MyBatis + Redis的图像素材管理系统 基于SpringBoot + MyBatis + Redis的图像素材管理系统 基于SpringBoot + MyBatis + Redis的图像素材管理系统 基于SpringBoot + MyBatis + Redis的图像素材管理...
shiro+springboot2.x+redis注解方式完整项目,包括自定义realm,整合redis缓存管理器,自定义sessionId,自定义session等等,sql文件就在resource文件夹下
springBoot+mybatis+redis集成,不上代码要确保redis服务端已经运行