Redis是一个高性能、内存型的键值存储系统,不仅作为数据库和缓存使用,还可作为消息中间件。其提供了丰富的数据结构支持,如字符串、列表、集合、哈希表以及有序集合等,并具有事务处理、持久化及发布/订阅等多种高级特性。以下对Redis中关键命令进行详细解释并举例:
连接与基础命令
-
连接Redis服务器
-
命令行工具:通过终端运行
redis-cli
以连接本地或远程服务器,默认端口为6379。redis-cli -h hostname -p port_number
-
程序中连接:使用相应语言的Redis客户端库创建连接,例如Python示例:
import redis r = redis.Redis(host='localhost', port=6379, db=0)
-
命令行工具:通过终端运行
-
选择数据库
-
SELECT index
:切换到指定索引号的数据库(0-15)。SELECT 0
-
-
键值对操作
-
设置键值:
SET key value [EX seconds] [PX milliseconds] [NX|XX]
- 设置一个键的值,并可指定生存时间(秒或毫秒),NX表示只有当键不存在时才设置,XX表示只有当键存在时才设置。
SET mykey "Hello World" EX 60 PX 3000 NX
- 设置一个键的值,并可指定生存时间(秒或毫秒),NX表示只有当键不存在时才设置,XX表示只有当键存在时才设置。
-
获取键值:
GET key
GET mykey
-
删除键:
DEL key [key ...]
DEL mykey anotherKey
-
数据结构操作实例
字符串(String)
-
设置/更新值:
SET key value
SET user:1:name "Alice"
-
原子自增/自减:
INCR key
或DECR key
INCR counter DECR visits:today
-
获取长度:
STRLEN key
STRLEN user:1:name
-
获取子串:
GETRANGE key start end
GETRANGE message 0 3
列表(List)
-
头部插入元素:
LPUSH key value [value ...]
LPUSH shopping_list bread milk eggs
-
尾部插入元素:
RPUSH key value [value ...]
RPUSH inbox new_message
-
弹出并获取元素:
- 头部弹出:
LPOP key
LPOP shopping_list
- 尾部弹出:
RPOP key
RPOP inbox
- 头部弹出:
-
查询列表内容:
LRANGE key start stop
LRANGE shopping_list 0 -1
集合(Set)
-
添加成员:
SADD key member [member ...]
SADD users:online 1 2 3
-
移除成员:
SREM key member [member ...]
SREM users:online 3
-
查询成员状态:
SISMEMBER key member
SISMEMBER users:online 1
-
计算集合操作:
- 交集:
SDIFF key1 key2
- 并集:
SUNION key1 key2
- 差集:
SDIFF key1 key2
SUNION setA setB
- 交集:
哈希表(Hash)
-
插入哈希字段:
HSET key field value
HSET user:1 username Alice
-
读取哈希字段:
HGET key field
HGET user:1 username
-
获取整个哈希表:
HGETALL key
HGETALL user:1
有序集合(Sorted Set)
-
按分数添加成员:
ZADD key score member [score member ...]
ZADD leaderboard 100 player1 200 player2
-
范围查询:
ZRANGE key start stop [WITHSCORES]
ZRANGE leaderboard 0 -1 WITHSCORES
-
删除成员:
ZREM key member [member ...]
ZREM leaderboard player1
高级特性
-
事务处理
- 开启事务:
MULTI
MULTI
- 执行事务内的命令:一系列命令后跟
EXEC
SET transaction_key value INCR transaction_counter EXEC
- 取消事务:
DISCARD
- 监视键并在事务内检查它们是否被修改:
WATCH key [key ...]
- 开启事务:
-
持久化
-
RDB持久化:
- Redis自动定期保存快照至磁盘,也可手动执行异步生成快照:
BGSAVE
- Redis自动定期保存快照至磁盘,也可手动执行异步生成快照:
-
AOF持久化:
- 开启Append Only File模式,将每次写操作记录到文件中;配置重写策略如
config set appendonly yes
。
- 开启Append Only File模式,将每次写操作记录到文件中;配置重写策略如
-
RDB持久化:
-
发布/订阅文章来源:https://www.toymoban.com/news/detail-821359.html
- 发布消息:
PUBLISH channel message
PUBLISH news "Breaking News!"
- 订阅频道:
SUBSCRIBE channel [channel ...]
SUBSCRIBE news weather
- 退订频道:
UNSUBSCRIBE [channel ...]
- 发布消息:
以上仅介绍了Redis常用功能的一小部分,实际应用中可以灵活运用各种命令和数据结构来满足复杂场景的需求。文章来源地址https://www.toymoban.com/news/detail-821359.html
到了这里,关于Redis 常规操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!