Redis
文章平均质量分 86
Redis学习笔记。
LauZyHou
Microsoft Software Development Engineer
展开
-
【Redis学习笔记】5:Redis常见数据结构实际应用场景
Redis为什么快?1. 内存操作、2. 多路复用、3. 高效数据结构,这节学习的就是Redis底层的数据结构应用场景。1 全局哈希表在Redis里set一个key-value时,会存储到Redis里的全局哈希表里。Redis的key一定是一个字符串,使用哈希函数对这个key取一个哈希值,然后对哈希表的长度取模,然后就能分到哈希表的一个表项(桶)里。Redis底层有渐进式的rehash和动态扩容机制,把发生哈希碰撞的概率降得很低,所以Redis的全局哈希表性能很高。key都是字符串,但是value原创 2021-05-29 16:31:39 · 784 阅读 · 0 评论 -
【Redis学习笔记】4:Redis缓存数据库双写不一致问题
1 问题描述如果有两个线程都要给某个字段落盘(先写数据库再写缓存),按照下面的顺序执行不会有问题:但是如果按照下面的顺序就会出现数据库中的数据和缓存中的数据不一致的情况:这就是缓存数据库双写不一致问题。在更多时候,真实场景下,写入数据库之后往往不会直接去写缓存(浪费资源),而是会去把缓存删除掉,而是当另一个线程读数据库之后顺便把读的数据写入到缓存里。在这种情况下,如果“查数据库”和“更新缓存”这两个操作之间有延时,那么也会出现缓存数据库双写不一致问题:因此这个问题本质上是对数据库的操作和其原创 2021-05-29 11:18:50 · 1211 阅读 · 1 评论 -
【Redis学习笔记】3:Redis主从架构的分布式锁失效问题 & 高并发量下性能优化
1 Redis主从架构的分布式锁失效问题1.1 问题描述在Redis主从架构中,写入都是写入主Redis实例,主实例会向从实例同步key。一个业务线程A通过向主Redis实例中写入来实现加分布式锁,加锁后开始执行业务代码。这时如果主Redis实例挂掉了,会选举出一个从Redis实例成为主的,如果刚刚加锁的key还没有来得及同步到从Redis中,那么选举出来的新的主Redis实例中就没有这个key,这个时候业务线程B就能加锁来获取分布式锁,执行业务代码了,而这个时候A还没有执行结束,所以就会出现并发安全原创 2021-05-28 22:19:18 · 4692 阅读 · 2 评论 -
【Redis学习笔记】2:认识Redisson及其分布式锁RLock.lock()
Redisson和Jedis类似,都是用Java实现的操作Redis的客户端,但是使用场景不同。Redisson更多用在分布式场景下(功能可以看wiki),Jedis更多用在单机场景下。1 Java接入Redisson以Spring Boot为例,接入Redisson的依赖:和使用Jedis类似,需要初始化一个Redisson客户端,使用提供的API来创建Redisson对象(指定了配置,以及要操作的是哪个Redis实例),然后注入到容器中:上面的代码里是单机模式,也支持其他的配置方法,如集群、原创 2021-05-28 16:39:31 · 1612 阅读 · 1 评论 -
【Redis学习笔记】1:基本使用,认识Redis中的数据类型
抽空学习一下Redis内存数据库。基本使用在安装时应添加redis目录到环境变量Path中。启动redis-server [redis.conf文件全路径]也可添加其它参数:redis-server --port 6389 -timeout 3000启动后应保持CLI窗口不要关闭,在windows下该文件名是redis.windows.conf。...原创 2018-08-02 17:32:24 · 239 阅读 · 0 评论