1.序列化问题

     <!--  SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。就是因为序列化策略的不同,即使是同一个key用不同的Template去序列化,结果是不同的。所以根据key去删除数据的时候就出现了删除失败的问题。 --><!-- redis 序列化策略 ,通常情况下key值采用String序列化策略, --><!-- 如果不指定序列化策略,StringRedisTemplate的key和value都将采用String序列化策略; --><!-- 但是RedisTemplate的key和value都将采用JDK序列化 这样就会出现采用不同template保存的数据不能用同一个template删除的问题 --><bean id="stringRedisSerializer"  class="org.springframework.data.redis.serializer.StringRedisSerializer" /><bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"><property name="connectionFactory" ref="connectionFactory" /> <property name="keySerializer" ref="stringRedisSerializer" /><property name="hashKeySerializer" ref="stringRedisSerializer" /><property name="valueSerializer" ref="stringRedisSerializer"/></bean>

2. 设置一个键值及其过期时间

错误的设置方式:

    /*** Overwrite parts of {@code key} starting at the specified {@code offset} with given {@code value}.** @param key must not be {@literal null}.* @param value* @param offset* @see <a href="http://redis.io/commands/setrange">Redis Documentation: SETRANGE</a>*/void set(K key, V value, long offset);

正确的设置方式:

    /*** Set the {@code value} and expiration {@code timeout} for {@code key}.** @param key must not be {@literal null}.* @param value* @param timeout* @param unit must not be {@literal null}.* @see <a href="http://redis.io/commands/setex">Redis Documentation: SETEX</a>*/void set(K key, V value, long timeout, TimeUnit unit);

3.模糊删除

错误的方式:

        Set<String> keys=redisTemplate.keys(prex+"*");/*for test    *Iterator<String> it=keys.iterator();* while(it.hasNext()){redisTemplate.delete((String)it.next());}*/

正确的方式:

 Set<String> keys=redisTemplate.keys(prex+"*");redisTemplate.delete(keys);

参考文献:

【1】http://www.cnblogs.com/shihaiming/p/6019795.html

【2】

转载于:https://www.cnblogs.com/davidwang456/p/6756082.html

spring-data-redis 使用过程中需要注意的地方相关推荐

  1. Spring Data Redis:Sentinel的高可用性

    1.概述 为了使Redis具有高可用性,我们可以使用Spring Data Redis对Redis Sentinel的支持. 借助Sentinel,我们可以创建自动抵御某些故障的Redis部署. Re ...

  2. 使用Spring Data Redis进行缓存

    在下面的示例中,我将向您展示如何使用Spring Data – Redis项目作为Spring 3.1中引入的Spring Cache Abstraction的缓存提供程序. 我对如何使用Spring ...

  3. Spring Data Redis学海拾贝

    简介: Redis redis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写.企业开发通常采用Redis来实现缓存.同类的产品还有memcache .memcached .Mo ...

  4. Spring Data Redis 多源

    完整代码:Ciiiiing/springboot_multi_redis 最近需要在同一个项目中访问多个 redis 而 spring data redis 默认是只支持一个数据源的,那就需要我们自己 ...

  5. Spring Data Redis 正确使用姿势

    课程简介 本课程主要讲解常规 Redis 的写法,Redis 和 Spring 的结合使用,即 Spring Data Redis,以及 Redis 在工作中的正确使用姿势,Redis 和 Sprin ...

  6. 使用Spring Data Redis操作Redis(集群版)

    说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...

  7. Redis - Spring Data Redis 操作 Jedis 、Lettuce 、 Redisson

    文章目录 官网 Jedis VS Lettuce Jedis Code POM依赖 配置文件 配置类 单元测试 Lettuce Code Redisson Code POM依赖 配置文件 配置类 单元 ...

  8. Spring Boot使用Spring Data Redis操作Redis(单机/集群)

    说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...

  9. Java Spring Data Redis实战与配置参数详解 application.properties...

    Redis作为开源分布式高并发缓存,使用范围非常广泛,主流互联网公司几乎都在使用. Java Spring Boot 2.0实战开发Redis缓存可以参考下面的步骤,Redis安装可以直接使用Linu ...

  10. Spring Data Redis与Jedis的选择(转)

    说明:内容可能有点旧,需要在业务上做权衡. Redis的客户端有两种实现方式,一是可以直接调用Jedis来实现,二是可以使用Spring Data Redis,通过Spring的封装来调用.应该使用哪 ...

最新文章

  1. 欢迎加入北京智源AI社群
  2. 引用变量和指针变量初探
  3. Javascript代码在线整理工具源码
  4. usb转ttl模块与matlab,USB接口转TTL小板的自检测试
  5. linux 天文软件,新闻|开源新闻速递:天文软件 Stellarium 0.15.0 发布
  6. 贪心——雪糕的最大数量(Leetcode 1833)
  7. LeetCode-116. 填充每个节点的下一个右侧节点指针
  8. matlab 程序 收缩,基于MATLAB的小波收缩去噪方法研究(程序)
  9. 2021年了,Transformer有可能替代CNN吗?未来有哪些研究方向?
  10. idea 格式化代码时, 不换行
  11. C++中常用的库函数 (自用)
  12. retrofit + rxjava2报错java.lang.IllegalStateException:Excepted a String but was BEGIN_OBJECT at line..
  13. 在SQL Server 2000里设置和使用数据库复制
  14. python中idle什么意思_python的idle是什么
  15. 数据库系统原理与应用教程(031)—— MySQL 的数据完整性(四):定义外键(FOREIGN KEY)
  16. python从入门到精通-张子夜-专题视频课程
  17. VB→C++→C#→VB.NET,语言的共性和个性
  18. Work20230405
  19. A072_前台登录_三方登录
  20. 怎么取消微信送票服务器,微信抢火车票怎么取消?有什么要注意的吗?

热门文章

  1. html input submit 执行,HtmlInputSubmit 服务器控件声明性语法
  2. 小而美的个人博客——前端——blog
  3. 安卓实训项目:音乐播放器2.0——实训报告2
  4. unity中单位是米还是厘米_数学单位换算公式口诀
  5. 白大脑比超级计算机还,和超级计算机相比,人类的大脑很弱吗
  6. linux snmp设置报警次数,CentOS/RHEL 6下禁止重复的SNMP连接日志
  7. java线程栅栏_Java 多线程基础 - CyclicBarrier
  8. java与室内设计_【Java JDK和躺平设计家3D室内设计哪个好用】Java JDK和躺平设计家3D室内设计对比-ZOL下载...
  9. rdd数据存内存 数据量_spark系列:spark core 数据交互技术点(数据模型)
  10. java和python都要掌握_如果两者都决定要学的话,先学Java还是Python?