github地址:https://github.com/DodoXixi/zeros-doc/blob/master/redis/redis-summary.MD 个人公众号:Java一日一条
redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库,缓存和消息中间件。 特点:单进程,单线程,模型的KV数据库。支持多种类型的数据结构,如 字符串(strings),散列(hashes),集合(sets), 有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(replication),LUA脚本(Lua scripting) LRU驱动时间(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动分区(cluster)提供高可用性(high availability)
redis 提供了多种不同级别的持久化方式,一种为RDB,一种为AOF
RDB 优缺点
优点:
AOF 优缺点
优点:
缺点:
fsync策略
过期键淘汰策略分为 主动淘汰和被动淘汰
redis支持发布订阅功能
redis通过MUTLTI,EXEC,WATCH等命令来实现事务(transaction)功能。事务提供了一种将多个命令请求打包,然后一次性,按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会终端事务而改去执行其他客户端的命令请求,他会将事务中的所有命令都执行完毕,然后采取处理其他客户端的命令请求。
特点:redis事务不支持回滚,即使事务队列中的命令是执行错误的,也会执行下去,直到事务队列中的命令一直执行完。
ACID:
WATCH
带有WATCH命令的事务会将客户端和被监视的键在数据库的watched_keys字典中进行关联,
watched_keys