Redis入门--基础语法大全

Redis基础语法大全:核心数据类型与操作详解

  • [一、 通用命令(通用操作)](#一、 通用命令(通用操作))
  • [二、 字符串(String)](#二、 字符串(String))
  • [三、 哈希(Hash)](#三、 哈希(Hash))
  • [四、 列表(List)](#四、 列表(List))
  • [五、 集合(Set)](#五、 集合(Set))
  • [六、 有序集合(ZSet)](#六、 有序集合(ZSet))
  • 总结

Redis 不仅仅是一个键值对存储系统,它支持多种灵活的数据结构。掌握这些基础语法是使用 Redis 的第一步。以下命令均基于 Redis 原生命令,适用于绝大多数版本。

一、 通用命令(通用操作)

这类命令不针对特定数据类型,主要用于管理键(Key)的生命周期和查看服务器状态。

  • exists key :判断某个键是否存在。
    • 示例:EXISTS mykey (返回 1 表示存在,0 表示不存在)
  • del key :删除指定的键。
    • 示例:DEL mykey
  • expire key seconds :为键设置过期时间(单位:秒)。
    • 示例:EXPIRE mykey 60 (设置 mykey 在 60 秒后自动过期)
  • ttl key :查看键的剩余生存时间。
    • 示例:TTL mykey (返回 -1 表示永不过期,-2 表示键不存在)
  • type key :查看键的数据类型。
    • 示例:TYPE mykey (返回 string, list, hash 等)

二、 字符串(String)

这是 Redis 最基础的数据类型,不仅支持文本,还支持数字和二进制数据。它是构建计数器、缓存对象的首选。

  • set key value :设置指定键的值。
    • 示例:SET name "Tom"
  • get key :获取指定键的值。
    • 示例:GET name
  • mset key1 value1 key2 value2 :批量设置键值对。
    • 示例:MSET age 20 city "Beijing"
  • mget key1 key2 :批量获取键的值。
    • 示例:MGET name age
  • incr key :将键的值自增 1(仅限数字)。
    • 示例:INCR click_count
  • decr key :将键的值自减 1(仅限数字)。
    • 示例:DECR stock

三、 哈希(Hash)

哈希是一个键值对集合,非常适合存储对象(如用户信息),可以看作是 Redis 中的"表"。

  • hset key field value :设置哈希表中某个字段的值。
    • 示例:HSET user:1001 username "Jerry"
  • hget key field :获取哈希表中指定字段的值。
    • 示例:HGET user:1001 username
  • hmset key field1 value1 field2 value2 :批量设置哈希表的多个字段。
    • 示例:HMSET user:1001 age 25 gender "Male"
  • hmget key field1 field2 :批量获取哈希表的多个字段值。
    • 示例:HMGET user:1001 username age gender
  • hgetall key :获取哈希表中所有的字段和值。
    • 示例:HGETALL user:1001
  • hdel key field :删除哈希表中的一个或多个字段。
    • 示例:HDEL user:1001 age

四、 列表(List)

列表是简单的字符串链表,按照插入顺序排序。它支持在头部(左边)或尾部(右边)插入和弹出数据,适合实现消息队列。

  • lpush key value :将一个值插入到列表的头部(左边)。
    • 示例:LPUSH queue task1
  • rpush key value :将一个值插入到列表的尾部(右边)。
    • 示例:RPUSH queue task2
  • lrange key start stop :获取列表指定范围内的元素(0 到 -1 表示获取全部)。
    • 示例:LRANGE queue 0 -1
  • lpop key :移除并获取列表的第一个元素(左边弹出)。
    • 示例:LPOP queue
  • rpop key :移除并获取列表的最后一个元素(右边弹出)。
    • 示例:RPOP queue

五、 集合(Set)

集合是无序且不重复的字符串集合。利用它的唯一性,常用于去重、抽奖或共同好友计算。

  • sadd key member :向集合中添加一个或多个成员。
    • 示例:SADD tags "redis" "database"
  • smembers key :获取集合中的所有成员。
    • 示例:SMEMBERS tags
  • sismember key member :判断某个成员是否存在于集合中。
    • 示例:SISMEMBER tags "redis"
  • srem key member :移除集合中的一个或多个成员。
    • 示例:SREM tags "database"
  • srandmember key :随机取出一个成员(不删除)。
    • 示例:SRANDMEMBER users

六、 有序集合(ZSet)

有序集合在集合的基础上增加了"分数(Score)"的概念,元素会根据分数自动排序,适合做排行榜。

  • zadd key score member :向有序集合添加一个成员及其分数。
    • 示例:ZADD rankings 100 "PlayerA"
  • zrange key start stop WITHSCORES :获取指定范围内的成员(按分数从小到大)。
    • 示例:ZRANGE rankings 0 -1 WITHSCORES (获取所有成员及分数)
  • zrevrange key start stop :获取指定范围内的成员(按分数从大到小,即降序)。
    • 示例:ZREVRANGE rankings 0 9 (获取前十名)
  • zscore key member :获取某个成员的分数。
    • 示例:ZSCORE rankings "PlayerA"

总结

以上涵盖了 Redis 最核心的五种数据结构及其基础命令:

  1. String:用于简单的键值对存储。
  2. Hash:用于存储对象信息。
  3. List:用于序列化数据和消息队列。
  4. Set:用于去重和集合运算。
  5. ZSet:用于需要排序的场景(如排行榜)。
相关推荐
华章酱3 小时前
MySQL幻读是怎么出现的
数据库·mysql·幻读
浅念-3 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
updayday8543 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
Nturmoils4 小时前
只恢复一张表,别把整个库都还回去
数据库
张某布响丸辣4 小时前
附件下载的安全边界:路径白名单、NAS 哨兵文件与 Redis Lua 一次性令牌
java·redis·redis lua·nas哨兵
龙腾AI白云4 小时前
大语言模型:从语言理解到通用智能的跃迁
数据库·人工智能·机器学习·知识图谱
SelectDB5 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB5 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
这个DBA有点耶5 小时前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
Wang's Blog5 小时前
Java 接入Redis: 使用Jedis操作Redis
java·服务器·redis