![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 66
羡云不羡君
这个作者很懒,什么都没留下…
展开
-
RESP无法连接linux上redis问题
永久关闭防火墙:systemctl disable firewalld.service。查看防火墙服务状态:systemctl status firewalld。重启防火墙: service firewalld restart。开启防火墙: service firewalld start。关闭防火墙: service firewalld stop。2.未关闭linux系统的防火墙导致无法连接redis。没有打开服务(这只是无法ping通虚拟机的一种原因)1.本机无法ping通虚拟机IP。原创 2023-09-10 12:03:30 · 281 阅读 · 0 评论 -
spring事务管理中,使用Synchronized修饰事务方法,同步为什么会失效
首先我们的环境是只有一台服务器,一个工程的情况,这种情况下使用synchronized修饰事务方法,同步效果会失效吗?在Controller中,我模拟了5个并发请求保存用户的场景,Service中的保存方法使用了synchronized关键字修饰,运行结果如下:可以看到数据库里面保存了三条相同的数据,这是为什么呢?原创 2023-03-25 16:32:13 · 1199 阅读 · 1 评论 -
缓存失败了怎么办?
我们创建一个重试表,表中有个字段记录重试次数,初始值为0,同时设置一个最大的重试次数,用一个定时任务异步的去读取重试表中的数据,然后去执行删除缓存操作,每删除一次,重试次数加1,如果其中有任意一次成功了,则返回成功。但是呢,这种方案还会出现删除失败的情况,因为基于binlog实现的删除只会删除一次,所以我们最终还是需要依赖于基于定时任务或者mq的重试机制。mq消费者读取mq消息,重试5次删除缓存。当然,如果你在接口中直接同步重试,该接口并发量比较高的时候,可能有点影响接口性能,这个我们不怕,可以改为异步。原创 2023-03-22 15:50:46 · 1029 阅读 · 0 评论 -
回顾:数据库操作和redis缓存中的事务回滚问题
注:@Transactional只会回滚MySQL的异常,其后发生的Redis异常并不会让其回滚数据库。Redis也不会回滚(这个和Redis采用的设计策略有关:不对回滚支持,保证操作的简单快速)但是MySQL操作成功,而Redis异常,此时缓存数据不一致,如何回滚Mysql操作又是一个问题。2、Redis的事务并不支持回滚功能,Redis命令在事务处理期间发生错误,原先的操作并不会回滚。1、数据库开启事务,即可在操作失误时,回滚之前的已经做过的操作,保证操作原子性。原创 2023-03-22 15:05:03 · 1593 阅读 · 0 评论 -
Redis实现全局唯一id,实现优惠卷秒杀的下单功能
因为是在集群下,所以就会有把这一个项目部署到多台机器上,这也会导致每个机器都有自己的JVM,我们前面synchronized锁的是当前JVM下常量池中的userId对象。所以在集群下,就会失效。这里我们判断stock>0,就是不管是否有线程安全问题,只要有票就会把票买了。只有没票了才会考虑线程安全问题。当我们当我们判断锁标识一致后要去释放锁的时候却发生了阻塞,结果锁又超时释放了,然后阻塞结束后就直接释放锁了。所以我们要确保判断锁标识和释放锁是一个原子操作。该锁是自己写的,仍然有缺陷:不可重入,不能重试。原创 2022-12-30 15:42:22 · 1116 阅读 · 0 评论 -
基于redis缓存查询店铺
布隆过滤器可以简单的理解为:是一个bite数组,里面存的是二进制位,不是把数据库里面的数据存储到布隆过滤器里面,而是把这些数据基于某种Hash算法计算出Hash值,然后再将这些Hash值转换成二进位保存到布隆过滤器里面,当我们要去判断数据库里面的数据是否存在的时候,其实就是判断对应的位置是0还是1.缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库(一些别有用心的人就会利用这一点不断的发出这样的请求,导致服务器压力变大)。*优点:实现简单,维护方便。原创 2022-12-26 16:24:06 · 832 阅读 · 0 评论 -
基于Redis实现登录
生成的验证码需要保存到redis中,用于后面登录时的判断。保存到redis中的数据类型选为String类型。为了保证每个用户对应的验证码的唯一性,所以使用电话作为key.原创 2022-12-23 12:54:16 · 2579 阅读 · 0 评论 -
Nosql数据库简介
NoSQL(NoSQL = Not Only SQL),"不仅仅是SQL”,泛指非关系型数据库。NoSQL不依赖业务逻辑存储,而已简单的Key-value等模式存储(共有四种方式这只是其中一种)。因此大大的增加了数据库的拓展能力。* 不遵循SQL标准。* 不支持ACID(原子性,一致性,隔离性,持久性)* 远超于SQL的性能。原创 2022-10-09 21:40:16 · 559 阅读 · 0 评论 -
Redis相关知识介绍,在Linux操作系统中Redis键(Key)操作命令,Redis常用数据类型
单键多值Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。原创 2022-10-20 21:28:57 · 829 阅读 · 0 评论