Redis简介
Redis (Remote Dictionary Server) 是一种使用 ANSI C 语言编写、遵守 BSD 协议、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库。其值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。Redis通常被用于快速处理数据访问和存储,特别是在需要高速读写操作的场景中。
Redis特点
- 内存存储: Redis 将数据存储在内存中,这使得它能够实现非常高速的读写操作。相比传统的磁盘存储数据库,Redis 在处理数据时具有极低的延迟。
- 多数据结构支持: Redis 不仅支持简单的键值存储,还提供了多种数据结构,如字符串、哈希表、列表、集合和有序集合等。这些数据结构使开发人员能够更灵活地处理各种类型的数据。
- 持久化: 尽管 Redis 的数据存储在内存中,但它支持将数据持久化到磁盘,以防止数据丢失。Redis 提供了两种持久化方式:快照(将数据写入磁盘)和日志(追加操作到文件)。这确保了即使在服务器重启时,数据也不会丢失。
- 高可用性和复制: Redis 支持主从复制,可以将数据从一个主节点复制到多个从节点。这提供了数据冗余备份和负载均衡,同时从节点还可以在主节点故障时提供读取服务,提高了系统的可用性。
- 发布-订阅模式: Redis 的发布-订阅模式允许客户端订阅频道,以接收其他客户端发布到这些频道的消息。这对于实现实时通知和事件驱动的应用程序非常有用。
- 事务支持: Redis 允许开发人员将一系列操作封装在一个事务中,以确保这些操作在执行期间是原子的。这样可以维护数据的一致性,即使在多个操作之间发生故障。
Redis命令
键值操作:
SET key value: 设置键的值。GET key: 获取键的值。DEL key: 删除键。EXISTS key: 检查键是否存在。TTL key: 获取键的剩余生存时间。
哈希操作:
HSET hash key value: 在哈希表中设置字段的值。HGET hash key: 获取哈希表中字段的值。HGETALL hash: 获取哈希表的所有字段和值。HDEL hash key: 删除哈希表中的字段。HKEYS hash: 获取哈希表的所有字段。
列表操作:
LPUSH list value: 在列表左侧插入值。RPUSH list value: 在列表右侧插入值。LPOP list: 移除并获取列表左侧的元素。RPOP list: 移除并获取列表右侧的元素。LRANGE list start stop: 获取列表指定范围内的元素。
集合操作:
SADD set member: 向集合添加成员。SMEMBERS set: 获取集合的所有成员。SREM set member: 从集合中移除成员。SISMEMBER set member: 检查成员是否在集合中。
有序集合操作:
ZADD sortedset score member: 向有序集合添加成员并指定分数。ZRANGE sortedset start stop: 获取有序集合指定范围内的成员。ZREM sortedset member: 从有序集合中移除成员。
事务操作:
MULTI: 开始事务。EXEC: 执行事务中的命令。DISCARD: 取消事务。
发布-订阅操作:
SUBSCRIBE channel: 订阅一个频道。PUBLISH channel message: 向频道发布消息。