随笔分类 - Redis学习
摘要:分布式缓存 缓存的淘汰策略 数据过期策略:惰性删除、定期删除 惰性删除:访问一个key时,Redis先检查它的过期时间,若发现过期立即删除 定期删除:将设置了过期时间的key放入一个独立字典中;对该字典进行每秒10次的扫描,并删除扫描到的已过期的key; 扫描采用贪心策略,每次随机2
阅读全文
摘要:RDB持久化 默认采用的持久化方式,以快照的形式将数据持久化到硬盘中,主要通过bgsave命令来触发,手动自动均可。 AOP持久化 以独立日志的方式,记录每次写入的命令;实时性好,在保证性能的前提下,可以做到最多丢失1秒的数据;比RDB的文件体积大,可以通过重写机制压缩AOF文件的大小。 R
阅读全文
摘要:Redis的网络IO和键值对读写是由一个线程来完成的,但Redis的其他功能如持久化、集群的数据同步等,则依赖其他线程来执行。 单线程可以简化数据结构和算法的实现,并且可以避免线程切换和竞争造成的消耗,但若某个命令的执行时间过长,则会造成其他命令的阻塞。 Redis的大部分操作都是基于内存的,采用的
阅读全文
摘要:事务机制 Redis提供的是一种简单的事务,它不支持回滚,且通常不支持ACID中的D。 multi:使客户端进入事务模式,此时客户端的所有命令会被顺序放入一个事务队列中; exec:执行当前事务,即将事务队列中的命令批量发送给服务器; discard:清空事务队列中已有的命令,并让客户端
阅读全文
摘要:编码机制 String int 条件:数据为整型值,并可用long型表示。 结构:long。 raw 条件:长度大于32字节的字符串。 结构:SDS(简单动态字符串),分配两块内存空间,分别存放对象元数据和字符串值。 embstr 条件:长度小于等于32字节的字符串。 结构:
阅读全文
摘要:数据类型 String 字符串,最多存储512M数据。 常用命令: set key value 设置值 get key 取值 getrange key start end 获取指定key中字符的子串 Hash 哈希,一个 hash 可以存储 232 - 1 键值对。 常用命令: hset k
阅读全文