
redis
祈雨v
这个作者很懒,什么都没留下…
展开
-
Redis(2)双机备份
一、准备主从IP:端口主Redis192.168.100.6:6380从Redis192.168.100.6:6381二、主从复制修改从Redis的配置文件vi redis.conf在从Redis的配置文件中添加主Redis的ip和端口号# slaveof #添加slaveof 192原创 2017-09-30 21:24:53 · 493 阅读 · 0 评论 -
Redis(1)安装步骤
一、准备redis-3.2.8.tar.gz下载链接二、源码编译1、解压源码包$ tar –zxvf redis-3.2.8.tar.gz2、编译到指定路径$ cd redis-3.2.8/$ make PREFIX=/home/sun_zeming/redis/myredis install$ cp redis.conf /home/sun_zem原创 2017-09-30 21:18:44 · 290 阅读 · 0 评论 -
Redis(3)RDB持久化
1、介绍RDB持久化机制,是对redis中的数据执行周期性的持久化,即定时将redis内存中的数据快照保存到硬盘。2、RDB持久化机制的优点RDB会生成多个数据文件,每个数据文件都代表了某一个时刻中redis的数据,这种多个数据文件的方式,非常适合做冷备,可以将这种完整的数据文件发送到一些远程的安全存储上去;RDB对redis对外提供的读写服务,影响非常小,可以让redis保持高性原创 2018-01-26 20:28:47 · 288 阅读 · 0 评论 -
Redis(4)AOF持久化
1、介绍AOF机制对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集。2、AOF持久化机制的优点AOF可以更好的保护数据不丢失,AOF默认每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数据每隔1秒,就执行一次fsync操作,保证os cache中的数据写入磁盘原创 2018-01-26 20:41:48 · 801 阅读 · 0 评论 -
redis集群选举机制
概要当redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤:故障节点主观下线故障节点客观下线Sentinel集群选举LeaderSentinel Leader决定新主节点选举过程1、主观下线Sentinel集群的每一个Sentinel节点会定时对redis集群的所有节点发心跳包检测节点是否正常。如果一个节点在down-after-m...原创 2019-02-02 17:56:24 · 26242 阅读 · 15 评论 -
redis之hash源码分析
hash的对象编码hash数据类型的对象编码有两种,分别是OBJ_ENCODING_ZIPLIST和OBJ_ENCODING_HT,即一种是以压缩数组;一种是哈希字典。两者的数据格式见下图:编码转换redis的hash数据之所以使用OBJ_ENCODING_ZIPLIST和OBJ_ENCODING_HT两种编码格式,是为了当一个hash对象的键值对数据量比较小时,使用紧凑的数组格式来节省...原创 2019-07-08 22:57:11 · 1030 阅读 · 0 评论 -
redis之key过期源码分析
简述redis的所有数据结构都可以设置过期时间,当key过期后再查询该key返回null。redis实现key自动过期是通过额外保存需要自动过期的key和该key的过期时间,然后通过主动删除和定时任务删除两种机制来将过期的key移除并回收内存。在redis4.0版本引入了异步删除的机制,对于删除对象大小大于64字节的key,先通过Unlink方法软删除后放入回收队列中,由其他线程异步回收内存空...原创 2019-07-12 22:56:23 · 526 阅读 · 0 评论 -
redis之string源码分析
string的对象编码string数据类型的对象编码有两种,分别是embstr和raw。两种编码的区别并不大,embstr相对于raw,内存空间连续。两者的数据格式见下图:redis的string数据之所以使用embstr和raw两种编码格式,是为了当一个string对象的值比较小时,使用一个连续的内存分区存放redisObject对象和sdshdr对象,减少内存分配和回收的消耗。embs...原创 2019-07-10 22:12:52 · 655 阅读 · 0 评论 -
redis之list源码分析
list的数据结构redis的list的结构为quicklist,并非简单的类似java的LinkedList链表或者ArrayList数组,而是将链表和数值结合的一种数据结构。宏观上list是一个quicklist链表,通过双向指针前后连接,但是链表的每一个节点是一个ziplist字节数组,在字节数组上保存list的数据。默认配置下,每个ziplist最大为8K字节,在向满了的ziplist...原创 2019-07-16 18:54:28 · 505 阅读 · 0 评论