自建服务器做网站要备案互联网技术岗位校园招聘
自建服务器做网站要备案,互联网技术岗位校园招聘,用dw制作个人简介网页教程,云南专业网站优化#x1f9f8;欢迎来到dream_ready的博客#xff0c;#x1f4dc;相信您对博主首页也很感兴趣o (ˉ▽ˉ#xff1b;) #x1f4dc;redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿 目录 1、引入依赖
2、对 Redis 的配置文件进行书写 3、S… 欢迎来到dream_ready的博客相信您对博主首页也很感兴趣o (ˉ▽ˉ) redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿 目录 1、引入依赖
2、对 Redis 的配置文件进行书写 3、Spring中使用 StringRedisTemplate 这个类操作数据库
4、对set 和 get 相关命令举例
5、Spring 中没有封装的命令
6、对 List 相关命令举例
7、对 Set 相关命令举例
8、对 Hash 相关命令操作
9、对 ZSet 进行操作
10、注学习此篇博客方法 1、引入依赖
创建 Spring 项目时一定要引入这个依赖
这是操作 redis 的依赖 2、对 Redis 的配置文件进行书写
这里以演示本地连接为例若想本地操作远程服务器的redis则要进行更为麻烦的配置此处就不再展示了毕竟本文主题是教大家spring如何操作redis 注若redis配置的有密码或者想要使用某个固定的数据源也可以增加下面两个配置 当然还可以增加其他的连接配置大家可以自行搜索这里讲的这几个绝对够大家基础使用了 3、Spring中使用 StringRedisTemplate 这个类操作数据库 需要注意的是操作redis的方法很多除了 StringRedisTemplate 外还有 Jedis 等等都可以操作redis此处主要讲解以 StringRedisTemplate 的方式操作redis读者若想了解其他操作redis的方式也可以查询相关资料自行学习 首先使用 Autowired 注解将这个类注入该类 使用Jedis是通过 Jedis 对象里的各种方法来操作 redis 的此处 Spring 中是通过 StringRedisTemplate 来操作redis的最原始提供的类是 RedisTemplate StringRedisTemplate 是 RedisTemplate 的子类专门用来处理 文本数据的这个类提供的方法相比于之前的 Jedis 中的各种方法还是存在较大的差异的
可以看到此处就与 Jedis 不同了又多了一层主要是选择对应数据类型的类然后再选操作方法 此处以 对value操作的相关方法举例
可以看到有get、set等多种不同方法的操作方法以满足我们的需求 4、对set 和 get 相关命令举例 GetMapping(/testString)ResponseBodypublic String testString() {// 先清除之前的数据redisTemplate.execute((RedisConnection connection) - {// execute 要求回调方法中必须写 return 语句返回个东西// 这个回调返回的对象就会作为 execute 本身的返回值connection.flushAll();return null;});redisTemplate.opsForValue().set(key, 111);redisTemplate.opsForValue().set(key2, 222);redisTemplate.opsForValue().set(key3, 333);String value redisTemplate.opsForValue().get(key);System.out.println(value: value);return OK;}
5、Spring 中没有封装的命令
有些命令 Spring 没有封装这时咱就要用 Redis 原生的命令进行操作了通过 excute 方法就可以使用 Redis 原生的命令了 这里的 RedisConnection 就代表了 Redis 连接对标 Jedis 对象
以 flushall 举例 6、对 List 相关命令举例 GetMapping(/testList)ResponseBodypublic String testList() {// 先清除之前的数据redisTemplate.execute((RedisConnection connection) - {// execute 要求回调方法中必须写 return 语句返回个东西// 这个回调返回的对象就会作为 execute 本身的返回值connection.flushAll();return null;});redisTemplate.opsForList().leftPush(key, 111);redisTemplate.opsForList().leftPush(key, 222);redisTemplate.opsForList().leftPush(key, 333);String value redisTemplate.opsForList().rightPop(key);System.out.println(value: value);value redisTemplate.opsForList().rightPop(key);System.out.println(value: value);value redisTemplate.opsForList().rightPop(key);System.out.println(value: value);return OKList;}
7、对 Set 相关命令举例 GetMapping(/testSet)ResponseBodypublic String testSet() {// 先清除之前的数据redisTemplate.execute((RedisConnection connection) - {// execute 要求回调方法中必须写 return 语句返回个东西// 这个回调返回的对象就会作为 execute 本身的返回值connection.flushAll();return null;});redisTemplate.opsForSet().add(key, 111, 222, 333);SetString result redisTemplate.opsForSet().members(key);System.out.println(result: result);Boolean exists redisTemplate.opsForSet().isMember(key, 111);System.out.println(exists: exists);Long count redisTemplate.opsForSet().size(key);System.out.println(count: count);redisTemplate.opsForSet().remove(key, 111, 222);result redisTemplate.opsForSet().members(key);System.out.println(result: result);return OKSet;}
8、对 Hash 相关命令操作 GetMapping(/testHash)ResponseBodypublic String testHash() {// 先清除之前的数据redisTemplate.execute((RedisConnection connection) - {// execute 要求回调方法中必须写 return 语句返回个东西// 这个回调返回的对象就会作为 execute 本身的返回值connection.flushAll();return null;});redisTemplate.opsForHash().put(key, f1, 111);redisTemplate.opsForHash().put(key, f2, 222);redisTemplate.opsForHash().put(key, f3, 333);String value (String) redisTemplate.opsForHash().get(key, f1);System.out.println(value: value);Boolean exists redisTemplate.opsForHash().hasKey(key, f1);System.out.println(exist: exists);redisTemplate.opsForHash().delete(key, f1, f2);Long size redisTemplate.opsForHash().size(key);System.out.println(size: size);return OKHash;}
9、对 ZSet 进行操作 GetMapping(/testZSet)ResponseBodypublic String testZSet() {redisTemplate.execute((RedisConnection connection) - {connection.flushAll();return null;});redisTemplate.opsForZSet().add(key, zhangsan, 10);redisTemplate.opsForZSet().add(key, lisi, 20);redisTemplate.opsForZSet().add(key, wangwu, 30);SetString members redisTemplate.opsForZSet().range(key, 0, -1);System.out.println(members: members);SetZSetOperations.TypedTupleString membersWithScore redisTemplate.opsForZSet().rangeWithScores(key, 0 ,-1);System.out.println(membersWithScore: membersWithScore);Double score redisTemplate.opsForZSet().score(key, zhangsan);System.out.println(score: score);redisTemplate.opsForZSet().remove(key, zhangsan);Long size redisTemplate.opsForZSet().size(key);System.out.println(size: size);Long rank redisTemplate.opsForZSet().rank(key, lisi);System.out.println(rank: rank);return OKZSet;}
10、注学习此篇博客方法
此篇博客上的代码为对某种数据类型整体操作的方法是一连串的并没有再拆开来细讲每一行代码的作用
大家可以使用gpt将每段我的代码发过去让gpt生成更加详细的注释这样学习事半功倍 前路漫漫愿星光与您相伴
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88796.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!