Redis 常规操作

发布时间:2024年01月23日

Redis是一个高性能、内存型的键值存储系统,不仅作为数据库和缓存使用,还可作为消息中间件。其提供了丰富的数据结构支持,如字符串、列表、集合、哈希表以及有序集合等,并具有事务处理、持久化及发布/订阅等多种高级特性。以下对Redis中关键命令进行详细解释并举例:

连接与基础命令

  1. 连接Redis服务器

    • 命令行工具:通过终端运行redis-cli以连接本地或远程服务器,默认端口为6379。
      redis-cli -h hostname -p port_number
      
    • 程序中连接:使用相应语言的Redis客户端库创建连接,例如Python示例:
      import redis
      r = redis.Redis(host='localhost', port=6379, db=0)
      
  2. 选择数据库

    • SELECT index:切换到指定索引号的数据库(0-15)。
      SELECT 0
      
  3. 键值对操作

    • 设置键值SET key value [EX seconds] [PX milliseconds] [NX|XX]

      • 设置一个键的值,并可指定生存时间(秒或毫秒),NX表示只有当键不存在时才设置,XX表示只有当键存在时才设置。
        SET mykey "Hello World" EX 60 PX 3000 NX
        
    • 获取键值GET key

      GET mykey
      
    • 删除键DEL key [key ...]

      DEL mykey anotherKey
      

数据结构操作实例

字符串(String)
  • 设置/更新值SET key value

    SET user:1:name "Alice"
    
  • 原子自增/自减INCR keyDECR 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
    • AOF持久化
      • 开启Append Only File模式,将每次写操作记录到文件中;配置重写策略如config set appendonly yes
  • 发布/订阅

    • 发布消息:PUBLISH channel message
      PUBLISH news "Breaking News!"
      
    • 订阅频道:SUBSCRIBE channel [channel ...]
      SUBSCRIBE news weather
      
    • 退订频道:UNSUBSCRIBE [channel ...]

以上仅介绍了Redis常用功能的一小部分,实际应用中可以灵活运用各种命令和数据结构来满足复杂场景的需求。

文章来源:https://blog.csdn.net/HolyLordHanChaun/article/details/135768069
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。