One minute
Redis
什么是Redis
- Redis是一个用C语言写的,开源、支持网络、基于内存、可选持久性的、非关系型、Key-Value数据库。它是一个内存中的数据结构存储系统,可以用作数据库,缓存和消息中间件。
使用Redis有哪些好处
速度快:因为数据结构在内存中类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
支持丰富的数据类型:String,list,set,sorted set,hash
支持事务:操作都是原子性,所谓原子性就是对数据的更改,要么全部执行,要么全部不执行。
丰富的特性:可用于缓存,按Key设置过期时间,过期后将会自动删除。
Redis和Memcached区别和比较
- Redis不仅仅支持简单的k/v类型的数据,同时还提供string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)等数据结构的存储。
memcache支持简单的数据类型,String。
Redis支持数据的备份,即master-slave模式的数据备份。
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memecache把数据全部存在内存之中
redis的速度比memcached快很多
Memcached是多线程,非阻塞IO复用的网络模型;Redis使用单线程的IO复用模型。
有持久化需求或者对数据结构和处理有高级要求的应用,选择redis,其他简单的key/value存储,选择memcached。 对于两者的选择需要要看具体的应用场景,如果需要缓存的数据只是key-value这样简单的结构时,则还是采用memcache,它也足够的稳定可靠。 如果涉及到存储,排序等一系列复杂的操作时,毫无疑问选择redis。
Redis有哪几种数据淘汰策略
volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据进行淘汰。
volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据进行淘汰。
volatile-random:从已设置过期时间的数据集中随机选择数据进行淘汰。
allkeys-lru:从数据集中挑选最近最少使用的数据进行淘汰。
allkeys-random:从数据集中随机选择数据进行淘汰。
no-enviction:禁止淘汰数据。
Redis的内存回收算法
Redis分布式锁
待总结。。。