![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 90
redis学习
WeakHashMap
版本任你发,我用java8!
展开
-
03-Redis主从搭建,哨兵搭建,Cluster集群搭建
master收到PSYNC命令后,会在后台进行数据持久化通过bgsave生成最新的rdb快照文件,就算master没有开启rdb,在主从同步数据的时候也会自动调用bgsave命令。然后,master再将之前缓存在内存中的命令发送给slave。master会在其内存中创建一个复制数据用的缓存队列,缓存最近一段时间的数据,master和它所有的slave都维护了复制的数据下标offset和master的进程id,因此,当网络连接断开后,slave会请求master继续进行未完成的复制,从所记录的数据下标开始。原创 2023-05-11 21:33:09 · 150 阅读 · 0 评论 -
02-Redis持久化
简单来说,bgsave 子进程是由主线程 fork 生成的,可以共享主线程的所有内存数据。的时候,重写时将已存在的数据改为二进制的形式保存。新的文件一开始不叫appendonly.aof,等到重写完新的AOF文件才会进行改名,覆盖原有的AOF文件,完成新旧两个AOF文件的替换。然后,bgsave 子进程会把这个副本数据写入 RDB 文件,而在这个过程中,主线程仍然可以直接修改原来的数据。: 因为aof的数据比较全,所以在恢复时会优先使用,但是aof的文件不是二进制文件,在数据大的情况下恢复的比较慢。原创 2023-05-07 17:37:59 · 101 阅读 · 0 评论 -
01-Redis基本使用和高性能原理
但是scan并非完美无瑕, 如果在scan的过程中如果有键的变化(增加、 删除、 修改) ,那么遍历效果可能会碰到如下问题: 新增的键可能没有遍历到, 遍历出了重复的键等情况, 也就是说scan并不能保证完整的遍历出来所有的键, 这些是我们在开发时需要考虑的。因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。原创 2023-04-22 23:37:15 · 78 阅读 · 0 评论