![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis学习
xl、
java小白一枚,记录撑场
展开
-
redis主从库数据同步
redis主从库数据同步 当启用多个redis实例的时候。可以通过replicaof或slaveof命令形成主从库关系 数据同步流程 1.从库发给主库psync命令,包含两个参数runID(主库id)和offset(复制进度),当第一次执行时,由于不知道主库的id,将主库id设为? offset设为-1,代表第一次复制 2.主库接到从库命令后,会使用FULLRESYNC(表示第一次全量复制)命令进行响应,携带runID和offset 3.返回从库后,从库记录下runID和offset 4.主库将所有数据同步原创 2020-09-16 16:14:10 · 340 阅读 · 0 评论 -
redis持久策略--aof
aof(append only file)日志 redis的aop采用写后日志,先执行命令,把数据写入内存,然后记录日志(防止记录了错误日志,防止据路日志阻塞写操作) 风险: 如果刚执行完一个命令,还没有来得及记日志就宕机了,那么这个命令和相应的数据就有丢失的风险 OF虽然避免了对当前命令的阻塞,但可能会给下一个操作带来阻塞风险 aof机制: always:同步写回,每个写命令执行玩,马上同步的将日志写入磁盘 everysec:每秒写回,每个命令执行完,间隔一秒写日志 no:操作系统控制写回,命令执行完,把原创 2020-09-15 15:22:50 · 129 阅读 · 0 评论 -
redis慢的原因
redis慢的原因 哈希表冲突,当key过多时,不同的key可鞥存放在同一个位置,redis在同一个位置形成一个链表进行保存,每个元素(entry)通过指针指向下一个元素 这就会有一个问题,当进行操作时就会逐一查找,所以效率降低 redis慢的解决方案 对哈希表进行rehash操作,就是增加哈希桶的数量,让每个entry分散保存,减少每个位置的entry数量(减少链表场长度) 为了提高rehash操作,redis默认使用两个全局哈希表,整个过程大致分为三步 给哈希表2分配更大的空间; 把哈希表1中的数据重新原创 2020-09-15 15:15:26 · 397 阅读 · 0 评论 -
redis基础数据类型的底层数据结构
redis数据类型 string—简单字符串 list-----双向链表,压缩列表 hash-----压缩列表,哈希表 set------哈希表,整数数组 sorted set----压缩列表,跳表 压缩列表实际类似一个数组,和数组不同的是,压缩列表在头部有三个字段,zlbytes(列表长度)、zltail(尾元素偏移量)、zllen(列表中rntry个数) 压缩列表尾部还有一个zlend(列表结束) 跳表:在有序列表的基础上增加了多级索引,通过索引位置的跳转,实现数据快速定位 ...原创 2020-09-15 15:14:05 · 49 阅读 · 0 评论