基本数据类型和常用命令

General

命令 作用 使用 描述
keys * 模糊搜索 keys qwe* 搜索 qwe 打头的
exists key 判断 keys 是否存在 exists mykey mykey 是否存在
type key 查看 key 的类型 type mykey
del key 删除 key del mykey 同步删除
unlink key 删除 key unlink mykey 异步删除
expire key 设置 key 的过期时间,单位是秒 expire mykey 10 设置 mykey 10 秒后过期
ttl key 查看 key 还有多久过期 ttl mykey -1 表示永不过期(默认)
-2 表示不存在该 key
select index 选择数据库分片 select 0 共有 16 个,默认选择的是 0
flushdb 清空当前库
flushall 清空所有库

String

虽然是 String,但是可以存储 String、整型、浮点型,整型和浮点型可以做自增和自减操作

命令 作用 使用 描述
get key 获取 key 值 get mykey
set key value 添加 key set mykey val 如果 key 不存在就添加;存在就覆盖
setnx key value 当 key 不存在时添加 key setnx mykey 简易锁
setex key value 添加 key 的同时设置过期时间,单位是秒 setex mykey 5
incr key key 的值 +1 incr mykey 整型适用
decr key key 的值 -1 整型适用
incrby key step key 的值 + step incrby mykey 4 整型适用
incrbyfloat key step key 的值 + step 浮点型适用,浮点型不能自增1,必须指定步长

Hash

存储对象

命令 作用 使用 描述
hset key field value 给对象的属性赋值;key 不存在就创建 hset user:101 id 1001 给 user:101 这个 hash 设置 id=1001
如果 user:101 不存在会创建这个 key
hget key field 取值 hget user:101 id
hkeys key 获取对象所有键 hkeys user:101
hvals key 获取对象所有值 hvals user:101
hgetall key 获取对象所有键值对 hgetall user:101 一行 key 一行 value 的显示,一个键值对两行
hexistxs key field 是否有指定属性 hexistxs user:101 id
hsetnx key field valye 对象中不存在某个属性才添加属性并复制 hsetnx user:101 name zhangsan 如果 user:101 没有 name 才添加

List

存储 可重复+有序 的 String 集合,底层是双向链表结构

命令 作用 使用 描述
lpush key v1 左(前)边插入,key 不存在就创建 lpush mykey 1 2 3 添加后顺序为 3 2 1
rpush key v1 同上,右(后)边插入
lpop key 弹出最左边的值,并返回 lpop mykey 弹出就是删除的意思
rpop key 同上,弹出右边
lrange key start end 从左至右获得指定下标范围的元素 lrange mykey 0 4 不会删除,只是获取;
如果取全部就 lrange key 0 -1
lindex key index 获取指定下标位置的元素 lindex mykey 2

Set

存储 不可重复+无序 的 String 集合,底层数据结构是 hash 表,所以时间复杂度是 O(1)

命令 作用 使用 描述
sadd key v1 key 添加一个元素;key 不存在就创建 sadd mykey v1 不可重复
smembers key 获取 set 所有值 smembers mykey
sismember key value 判断 set 中是否有有某个值 sismember mykey v1 1:存在;0:不存在
scard key 总元素个数
smove k1 k2 value 把 k1 中的 value 移动到 k2 中
sinter k1 k2 取交集
sunion k1 k2 取并集
sdiff k1 k2 取差集 k1 中存在,k2 中不存在

SortedSet/Zset

存储 不可重复 + 可排序 的 String 集合,不是有序(插入顺序),是根据指定的 score 来排序,底层数据结构是跳表+hash表

命令 作用 使用 描述
zadd key score member 给集合添加元素;可以多个 zadd tv_rank 100 海信 99 索尼 添加两个元素;海信和索尼
海信分数:100;索尼分数:99
zscore key member 获取某个元素的分数 zadd tv_rank 海信 获取 '海信' 的分数
zrank key member 获取某个元素的排名
zcard key 集合中的元素个数 zcard tv_rank
zcount key min max 集合中指定分数分范围内的元素个数 zcount tv_rank 10 80 分数是[10-80]之间的元素个数
zincrby key score member 给元素增加指定分数 zincrby tv_rank 15 索尼 给索尼增加15分
zrange key start end [withscores] 先按分数排序,然后获取排序后的指定下标的元素 zrange tv_rank 0 -1 获取全部元素,每个元素不带分数
zrangebyscore key min max [withscores] 先确定分数范围的元素,然后再排序 zrangebyscore tv_rank 10 100 withscores 获取10-100内的元素,带分数
zrevrangebyscore key max min [withscores] 同上,按照分数从大到小排序
zrem key member 移除元素;可以多个 zrem tv_rank 海信 索尼 创维 移除这三个元素
  • zrange 全部元素先根据分数排序,然后根据下标取排序后的元素
  • zrangebyscore 相反,是先根据分数得到范围内的元素,然后再根据分数排序
  • 默认都是从大到小排序,如果要从小到大,Z 后满加 REV,比如 zrank 对应的是 zrevrank
posted @   CyrusHuang  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示