摘要:
redis文件事件 定义:redis服务器通过套接字socket与其他redis服务或者客户端进行通信,每次通信会产生文件事件而redis通过监听和处理这些事件来完成一系列网络通信操作。 实现:redis基于unix网络通信模型的I/O复用模型,一个线程监控多个套接字,当某个套接接收到信息,由事件分 阅读全文
摘要:
RDB RDB是通过直接将K-V键值对保存在硬盘文件来持久化。 通过两个命令可以让服务器执行rdb操作(tips:SAVE和BGSAVE底层都是调用的rdbSave) SAVE:SAVE命令由主进程执行,所以当执行SAVE命令后,服务器将进入阻塞状态,只有当RDB文件生成完成后,才开始处理请求。 B 阅读全文
摘要:
事务命令: multi 开启事务,此时输入的命令会入队FIFO。 exec 依次执行队列中的命令,即使遇到执行错误的命令,也不会影响其他命令,redis没有事务回滚机制。 discard 放弃事务 watch CAS乐观锁,用法是在multi命令之前执行,监控某个key值,如果在命令输入完成后执行e 阅读全文
摘要:
redis高可用的集群模式 使用集群,只需要将每个数据库节点的cluster-enable配置打开即可。每个集群中至少需要三个主数据库才能正常运行。即使使用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,可以采用集群,就是分布式 阅读全文
摘要:
主从模式 redis提供了复制功能,可以实现当一台数据库中的数据更新了,自动同步到其他数据库中,主节点支持读写,从节点只能读,并且接收主节点同步过来的数据,主从是一对多的关系。从节点在启动的时候加参数 --slaveof ip port (ip port对应主节点),也可以在运行时执行slaveof 阅读全文
摘要:
Redis为什么这么快? I/O复用模型。 单线程操作没有切换线程开销。 基于内存操作,快。 Redis数据结构 String 最基本的KV结构 hash 类似于java对象 list 集合可重复 set 不可重复 zset 有序集合score排序 基于redis的分布式锁实现 加锁 方式一:使用l 阅读全文