Redis小结
Redis 是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。
1. Redis 基本概念
- 键值对存储:Redis 通过键值对存储数据,每个键都是一个字符串,值则可以是多种数据类型。
- 内存存储:Redis 数据存储在内存中,因此读写操作非常快速。
- 持久化:Redis 支持数据持久化,可以将内存中的数据异步保存到磁盘中。
- 高可用:Redis 支持主从复制、哨兵模式和集群模式,提供高可用性和分布式数据存储。
2. 数据类型
- 字符串(String):最基本的数据类型,可以存储任何类型的数据,如整数、浮点数、字符串等。
- 哈希(Hash):用于存储键值对集合,类似于 Python 中的字典。
- 列表(List):一个有序的字符串列表,可以用作队列或栈。
- 集合(Set):一个无序的字符串集合,不允许重复元素。
- 有序集合(Sorted Set):一个带有分数的有序字符串集合,按分数排序。
- 位图(Bitmap):用于操作二进制位的字符串。
- HyperLogLog:用于估算基数(去重后的元素个数)的一种数据结构。
- 地理空间索引(Geospatial):用于存储地理位置信息并进行操作。
3. 常用命令
3.1 字符串操作
SET key value
:设置键的值。GET key
:获取键的值。INCR key
:将键的值增加 1(键值必须是整数)。DECR key
:将键的值减小 1(键值必须是整数)。APPEND key value
:将值追加到键的当前值之后。
3.2 哈希操作
HSET key field value
:设置哈希表中的字段值。HGET key field
:获取哈希表中的字段值。HGETALL key
:获取哈希表中的所有字段和值。HDEL key field
:删除哈希表中的一个或多个字段。
3.3 列表操作
LPUSH key value
:在列表头部添加一个或多个值。RPUSH key value
:在列表尾部添加一个或多个值。LPOP key
:移除并返回列表的头元素。RPOP key
:移除并返回列表的尾元素。LRANGE key start stop
:获取列表中指定范围的元素。
3.4 集合操作
SADD key value
:向集合添加一个或多个成员。SREM key value
:移除集合中的一个或多个成员。SMEMBERS key
:返回集合中的所有成员。SISMEMBER key value
:判断值是否是集合中的成员。
3.5 有序集合操作
ZADD key score value
:向有序集合添加一个或多个成员,或者更新已存在成员的分数。ZREM key value
:移除有序集合中的一个或多个成员。ZRANGE key start stop [WITHSCORES]
:返回有序集合中指定范围的成员。ZSCORE key value
:返回有序集合中成员的分数。
4. 持久化机制
- RDB(Redis Database):将内存中的数据定期保存到磁盘上,生成快照。
- AOF(Append Only File):通过将每个写操作记录到日志文件中,实现持久化。
5. 事务
- Redis 的事务通过
MULTI
、EXEC
、DISCARD
、WATCH
等命令实现。 MULTI
:开始一个事务。EXEC
:执行事务中的所有命令。DISCARD
:取消事务。WATCH key
:监视一个或多个键,如果在事务执行前这些键被修改,则事务被中止。
6. 发布/订阅
- 发布/订阅(Pub/Sub):Redis 提供了发布/订阅消息系统,通过
PUBLISH
、SUBSCRIBE
、UNSUBSCRIBE
等命令实现。
7. 主从复制和高可用
- 主从复制:通过
SLAVEOF
命令设置从节点,从节点会自动同步主节点的数据。 - 哨兵模式:通过 Redis Sentinel 实现主从切换和故障检测。
- 集群模式:通过 Redis Cluster 实现数据分片和高可用。
8. 常用工具
- redis-cli:Redis 的命令行工具,用于与 Redis 服务器进行交互。
- Redis Desktop Manager:一个图形化的 Redis 管理工具。
- redis-benchmark:Redis 的性能测试工具。
9. 使用场景
- 缓存:通过设置过期时间,Redis 可以用作缓存系统,减轻数据库压力。
- 会话存储:存储用户会话信息,实现快速访问。
- 消息队列:利用 Redis 的列表或有序集合,实现简单的消息队列。
- 排行榜:利用 Redis 的有序集合,实现实时排行榜。
原文地址:https://blog.csdn.net/weixin_63566388/article/details/140608922
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!