初识Redis

Redis是一个开源的,内存型的Key-Value存储系统,通常被用作数据库、缓存或消息中间件。

redis

数据类型

支持多种数据结构,常用的有:

  • 字符串-String
  • 散列-Hash
  • 列表-List
  • 集合-Set
  • 有序集合-Sorted Set

特性

与其他数据库相同,redis具备增、删、改、查等基本操作,用于操作各种数据类型的数据。与此同时,它还提供了一些其他数据库可能不具备的功能。

TTL

通过TTL、SET、PTTL指令可以设置单条数据的过期时间;一旦过期,数据将自动从数据库中删除。

订阅与发布

发布/订阅,可以实现不同的消息,发给指定的订阅者。

事务

与关系型数据相同,redis通过MULTI、EXEC等指令使多条数据操作命令要么全部被执行,要么全部都不执行。保持事务的原子性

高可用部署

只是单纯的主从复制(master-slave)部署是不够的,因为连接redis的客户端并无法在master发生故障时,自动切换到slave。redis官方提供了redis sentinel的解决方案,Sentinel系统可以用于监听和管理多个redis服务器实例,并实现监控、提醒和自动故障转移;同时其本身也是一个分布式系统,可以运行多个Sentinel进程,接收主服务器是否下线的消息,并通过投票协议决定是否自动进行故障转移。

结语

以上小总结只是些皮毛罢了。Redis的文档,无论是中文还是英文官网,都写的非常良心,每个指令都有一个小的example帮助理解,另外还提供了设计模式的参考以及各种使用场景,比如分布式锁的实现、基于LRU算法的内存缓存等,建议好好阅读,会有非常大的帮助