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:用于需要排序的场景(如排行榜)。
相关推荐
2501_941982052 小时前
从孤岛到闭环:如何将企微 RPA 自动化能力无缝接入业务工作流?
数据库
ALex_zry2 小时前
Redis Cluster 故障转移与高可用实践
数据库·redis·wpf
那我掉的头发算什么2 小时前
【Mybatis】动态SQL与留言板小项目
数据库·spring boot·sql·spring·mybatis·配置
難釋懷2 小时前
优惠卷秒杀库存超卖问题分析
redis·缓存
pp起床2 小时前
【苍穹外卖】Day05 Redis快速入门
数据库·redis·缓存
晚霞的不甘2 小时前
Flutter for OpenHarmony3D DNA 螺旋可视化:用 Canvas 构建沉浸式分子模型
前端·数据库·经验分享·flutter·3d·前端框架
马尔代夫哈哈哈9 小时前
Spring IoC&DI
数据库·sql
液态不合群11 小时前
[特殊字符] MySQL 覆盖索引详解
数据库·mysql
计算机毕设VX:Fegn089511 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计