1. 缓存(Caching):
• Redis常被用作缓存层,存储那些频繁访问但更新不频繁的数据,以减少数据库的访问压力,提高数据读取速度。
• LRU(Least Recently Used)淘汰策略:Redis支持多种内存淘汰策略,其中LRU策略会优先淘汰最近最少使用的数据。
2. 会话存储(Session Storage):
• Redis可以存储用户会话信息,特别是在分布式系统中,它能够确保用户会话的一致性和可用性。
• 会话持久化:通过将会话数据存储在Redis中,即使服务器重启,用户会话也不会丢失。
3. 发布/订阅(Pub/Sub):
• Redis提供了发布/订阅模式,允许发送者(发布者)将消息发送到频道,接收者(订阅者)从频道中接收消息。
• 频道(Channel):用于发送和接收消息的通道。
• 模式匹配(Pattern Matching):订阅者可以订阅一个模式,从而接收与模式匹配的所有频道的消息。
4. 列表(List):
• Redis列表是一种有序的字符串集合,支持在列表的两端进行元素的添加和移除操作。
• LPUSH/RPUSH:在列表的左端或右端添加元素。
• LPOP/RPOP:从列表的左端或右端移除元素。
5. 集合(Set):
• Redis集合是一种无序的字符串集合,支持元素的添加、删除和集合运算(如并集、交集等)。
• SADD:向集合中添加元素。
• SREM:从集合中移除元素。
• SUNION/SINTER/SDIFF:计算集合的并集、交集和差集。
6. 有序集合(Sorted Set):
• Redis有序集合是一种有序的字符串集合,每个元素都与一个分数相关联,支持按分数排序的元素访问。
• ZADD:向有序集合中添加元素及其分数。
• ZRANGE:按分数从低到高获取有序集合中的元素。
• ZREVRANGE:按分数从高到低获取有序集合中的元素。
7. 哈希(Hash):
• Redis哈希是一种键值对集合,其中每个键都是字符串,而值可以是字符串、数字等。
• HSET:向哈希中添加键值对。
• HGET:从哈希中获取指定键的值。
• HMSET/HMGET:同时设置或获取多个键值对。
8. 位图(Bitmap)和位字段(Bitfield):
• Redis提供了位级别的操作,允许在字符串上进行位设置、位翻转和位计数等操作。
• SETBIT:设置字符串中指定位置的位。
• GETBIT:获取字符串中指定位置的位的值。
• BITCOUNT:统计字符串中设置为1的位的数量。
9. 地理空间索引(Geospatial Indexing):
• Redis支持地理空间数据的存储和查询,如计算两点之间的距离、查找指定范围内的点等。
• GEOADD:向地理空间索引中添加点的坐标。
• GEORADIUS:根据点的坐标和半径查询范围内的点。
10. 脚本(Scripting):
• Redis支持使用Lua脚本进行复杂的操作,这些脚本可以在服务器端执行,从而减少网络延迟并提高性能。
• EVAL:执行Lua脚本。
• EVALSHA:使用脚本的SHA1摘要执行脚本,以节省带宽。
11. 持久化(Persistence):
• Redis提供了多种持久化机制,如RDB快照和AOF(Append-Only File)日志,以确保数据的可靠性和持久性。
• RDB:定期将内存中的数据快照保存到磁盘上。
• AOF:记录每次写操作到日志文件中,当服务器重启时,可以重新执行这些操作来恢复数据。