默认情况下SpringBoot的stringRedisTempalte只能存string,redisTemplate如果存入bytes也会报错,是因为找不到相应的ValueSerializer,或者用默认的StringRedisSerializer来序列化,导致bytes无法转成String而报错。 我们可以在Redis的配置文件下,指定相应的ValueSerializer。 RedisConfiguration.java的配置如下: import org.springframework.context.annot…

2023-03-08 0条评论 740点热度 0人点赞 admin 阅读全文

在Linux(CentOS)上编译的方式redis,问题出现的步骤,下载了安装包,解开后,先make & make install 的时候报错提示没有gcc,然后安装了gcc,然后再次执行 make的时候,就出现了 zmalloc.h:50:31:fatal error: jemalloc/jemalloc.h: No such file or directory 以上这个错误。 因为上次在编译的时候遇到了错误,又残留文件,只需要清理上次编译残留文件,重新编译,就可以了,命令如下: make distcle…

2023-02-11 0条评论 541点热度 0人点赞 admin 阅读全文

发布订阅模式简介 发布订阅模式在我们日常的开发工作中算是比较常用的一种方式,发布订阅模式有可以被称为观察者模式,它定义的是一种一对多的关系模式,可以让多个订阅者同时监听到同一个发布者的消息,这个发布者又被称为是主题对象。然后通过发布者发布的消息,来通知观察者能够实时的更新自己获取到的消息内容。 有人说发布订阅模式与观察者模式是有区别的,这里我们先不对两者做展开的讨论,在后面我们会介绍相关的内容。这里我们首先来看发布订阅模式,如下图所示。 如图所示,在发布订阅模式中有两个关键性的节点,发布者与订阅者。我们可以将发布者…

2022-12-21 0条评论 607点热度 0人点赞 admin 阅读全文

Redis是一个非常流行的key-value存储系统,而作为其官方推荐的Java版客户端 Jedis也非常强大和稳定。 在单个客户端中,如果需要读写大量数据,可以考虑采用管道(Pipeline)方式。如果采用管道方式,那么多条命令可以通过批量的方式一次性地发送到服务器,而结果也会一次性返回到客户端。 本文将介绍Redis 使用管道(Pipeline)方式提升操作性能。 一、管道(Pipeline) 未使用管道方式执行N条命令,如图所示: 管道(Pipeline):一次向Redis发送多条命令。 客户端可以一次性发送…

2022-09-28 0条评论 467点热度 0人点赞 admin 阅读全文

电商当项目经验已经非常普遍了,不管你是包装的还是真实的,起码要能讲清楚电商中常见的问题,比如库存的操作怎么防止商品被超卖 解决方案 分析 基于数据库单库存 基于数据库多库存 基于redis 基于redis实现扣减库存的具体实现 初始化库存回调函数(IStockCallback) 扣减库存服务(StockService) 调用 在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。 解决方案 使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。 还是使用…

2022-09-26 0条评论 372点热度 0人点赞 admin 阅读全文

Redis作为一个高性能内存数据库,在实际业务中应用的非常广泛。虽然Redis的性能很好,但是在实际使用过程中,如果使用不当,也会造成一些性能问题,比如数据中存在大key。 顾名思义就是单个key中的数据比较大。通常来说,单个key的value值不会很大,这种情况下,key的读取、删除操作不会影响性能。如果value过大,读取或删除会相对耗时。 例如一个字符串类型的value最大可以存储512MB的内容,一个列表类型的value最多可以存储2的32次方-1个元素。一般情况下,我们认为字符串类型的key的value值…

2022-09-21 0条评论 461点热度 0人点赞 admin 阅读全文