电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

spring中使用redistemplate操作redis

43页
  • 卖家[上传人]:m****
  • 文档编号:55712758
  • 上传时间:2018-10-04
  • 文档格式:DOCX
  • 文档大小:46.59KB
  • / 43 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、springspring 中使用中使用 redistemplateredistemplate 操作操作 redisredisSpring 中使用 RedisTemplate 操作 Redis(spring-data-redis)Redis 数据结构简介Redis 可以存储键与 5 种不同数据结构类型之间的映射,这 5 种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。下面来对这 5 种数据结构类型作简单的介绍:结构类型 结构存储的值 结构的读写能力String 可以是字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(increment)或者自减(decrement)List 一个链表,链表上的每个节点都包含了一个字符串 从链表的两端推入或者弹出元素;根据偏移量对链表进行修剪(trim);读取单个或者多个元素;根据值来查找或者移除元素Set 包含字符串的无序收集器(unorderedcollection),并且被包含的每个字符串都是独一无二的、各不相同 添加、获取、移除单个元素;

      2、检查一个元素是否存在于某个集合中;计算交集、并集、差集;从集合里卖弄随机获取元素Hash 包含键值对的无序散列表 添加、获取、移除单个键值对;获取所有键值对Zset 字符串成员(member)与浮点数分值(score)之间的有序映射,元素的排列顺序由分值的大小决定 添加、获取、删除单个元素;根据分值范围(range)或者成员来获取元素Redis 5 种数据结构的概念大致介绍到这边,下面将结合 Spring 封装的RedisTemplate 来对这 5 种数据结构的运用进行演示RedisTemplate 介绍Spring 封装了 RedisTemplate 对象来进行对 Redis 的各种操作,它支持所有的 Redis原生的 api。RedisTemplate 位于 spring-data-redis 包下。RedisTemplate 在 Spring 代码中的结构如下:org.springframework.data.redis.coreClass RedisTemplatejava.lang.Objectorg.springframework.data.redis.core.Redi

      3、sAccessororg.springframework.data.redis.core.RedisTemplateType Parameters:Kthe Redis key type against which the template works (usually a String)模板中的 Redis key 的类型(通常为 String)如:RedisTemplate注意:如果没特殊情况,切勿定义成 RedisTemplate,否则根据里氏替换原则,使用的时候会造成类型错误 。Vthe Redis value type against which the template works模板中的 Redis value 的类型RedisTemplate 中定义了对 5 种数据结构操作redisTemplate.opsForValue();/操作字符串redisTemplate.opsForHash();/操作 hashredisTemplate.opsForList();/操作 listredisTemplate.opsForSet();/操作 setredisTemplate.

      4、opsForZSet();/操作有序 setStringRedisTemplate 与 RedisTemplate两者的关系是 StringRedisTemplate 继承 RedisTemplate。两者的数据是不共通的;也就是说 StringRedisTemplate 只能管理StringRedisTemplate 里面的数据,RedisTemplate 只能管理 RedisTemplate 中的数据。SDR 默认采用的序列化策略有两种,一种是 String 的序列化策略,一种是 JDK 的序列化策略。StringRedisTemplate 默认采用的是 String 的序列化策略,保存的 key 和 value 都是采用此策略序列化保存的。RedisTemplate 默认采用的是 JDK 的序列化策略,保存的 key 和 value 都是采用此策略序列化保存的。RedisTemplate 配置如下:复制代码Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory)Jac

      5、kson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om = new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);RedisTemplate template = new RedisTemplate();template.setConnectionFactory(redisConnectionFactory);template.setKeySerializer(jackson2JsonRedisSerializer);template.setValueSerializer(j

      6、ackson2JsonRedisSerializer);template.setHashKeySerializer(jackson2JsonRedisSerializer);template.setHashValueSerializer(jackson2JsonRedisSerializer);template.afterPropertiesSet();return template;复制代码Redis 的 String 数据结构 (推荐使用 StringRedisTemplate)注意:如果使用 RedisTemplate 需要更改序列化方式RedisSerializer stringSerializer = new StringRedisSerializer();template.setKeySerializer(stringSerializer );template.setValueSerializer(stringSerializer );template.setHashKeySerializer(stringSerializer );template.setHashValue

      7、Serializer(stringSerializer );public interface ValueOperationsRedis operations for simple (or in Redis terminology string) values.ValueOperations 可以对 String 数据结构进行操作:set void set(K key, V value);使用:redisTemplate.opsForValue().set(“name“,“tom“);结果:redisTemplate.opsForValue().get(“name“) 输出结果为 tomset void set(K key, V value, long timeout, TimeUnit unit);使用:redisTemplate.opsForValue().set(“name“,“tom“,10, TimeUnit.SECONDS);结果:redisTemplate.opsForValue().get(“name“)由于设置的是 10 秒失效,十秒之内查询有结果,十秒之后返回为 nu

      8、llset void set(K key, V value, long offset);该方法是用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始使用:template.opsForValue().set(“key“,“hello world“);template.opsForValue().set(“key“,“redis“, 6);System.out.println(“*“+template.opsForValue().get(“key“);结果:*hello redissetIfAbsent Boolean setIfAbsent(K key, V value);使用:System.out.println(template.opsForValue().setIfAbsent(“multi1“,“multi1“);/false multi1 之前已经存在System.out.println(template.opsForValue().setIfAbsent(“multi111“,“multi111“);/true mult

      9、i111 之前不存在结果:falsetruemultiSet void multiSet(Mapm);为多个键分别设置它们的值复制代码使用:Map maps = new HashMap();maps.put(“multi1“,“multi1“);maps.put(“multi2“,“multi2“);maps.put(“multi3“,“multi3“);template.opsForValue().multiSet(maps);List keys = new ArrayList();keys.add(“multi1“);keys.add(“multi2“);keys.add(“multi3“);System.out.println(template.opsForValue().multiGet(keys);结果:multi1, multi2, multi3复制代码multiSetIfAbsent Boolean multiSetIfAbsent(Mapm);为多个键分别设置它们的值,如果存在则返回 false,不存在返回 true复制代码使用:Map maps = new HashMap();maps.put(“multi11“,“multi11“);maps.put(“multi22“,“multi22“);maps.put(“multi33“,“multi33“);Map maps2 = new HashMap();maps2.put(“multi1“,“multi1“);maps2.put(“multi2“,“multi2“);maps2.put(“multi3“,“multi3“);System.out.println(template.opsForValue().multiSetIfAbsent(maps);System.out.println(template.opsForValue().multiSetIfAbsent(maps2);结果:truefalse复制代码get V get(Object key);使用:template.opsForValue().set(“key“,“hello world“);System.out.println(“*

      《spring中使用redistemplate操作redis》由会员m****分享,可在线阅读,更多相关《spring中使用redistemplate操作redis》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.