常用命令
1308字约4分钟
2024-08-10
keys *
:查看当前库所有 key(匹配:keys *1)exists key
:判断某个 key 是否存在,1 表示存在,0 表示不存在type key
:查看你的 key 是什么类型del key
:删除指定的 key 数据unlink key
:根据 value 选择非阻塞删除(仅将 keys 从 keyspace 元数据中删除,真正的删除会在后续异步操作)expire key 10
:为给定的 key 设置 10 秒过期时间ttl key
:查看还有多少秒过期,-1 表示永远不过期,-2 表示已过期select 几号数据库
:命令切换数据库dbsize
:查看当前数据库的 key 的数量flushdb
:清空当前库flushall
:通杀全部库
字符串操作
set <key> <value>
:添加键值对NX:当数据库中 key 不存在时,可以将 key-value 添加至数据库
XX:当数据库中 key 存在时,可以将 key-value 添加至数据库,与 NX 互斥
EX:key 的超时秒数
PX:key 的超时毫秒数,与 EX 互斥
get <key>
:查询对应键值appen <key> <value>
:将给定的<value>
追加到原值的末尾(结果返回总的长度)strlen <key>
:获得值的长度setnx <key> <value>
:只有在 key 不存在时,设置 key 的值incr <key>
:将 key 中存储的数值增加 1,只能对数字值操作,如果为空,新增值为 1decr <key>
:将 key 中存储的值减 1,只能对数字值操作,如果为空,减少值为 -1incrby/decrby <key> 步长
:将 key 中存储的数字值增减,自定义步长mst <key1> <value1> <key2> <value2>
:同时设置一个或多个 key-value 对mget <key1> <key2>
:同时获取一个货多个 valuemsetnx <key1> <value1> <key2> <value2>
:同时设置一个或多个 key-value 对,仅在给定所有 key 都不存在- mst、mget、msetnx 原子性,有一个失败都失败
getrange <key> <起始位置> <结束位置>
:获得值的范围,类似 Java 的 substring,前包 后包setrange <key> <起始位置> <value>
:用<value>
覆写<key>
所存储的字符串值,从<起始位置>
开始(索引从 0 开始)setex <key> <过期时间> <value>
:设置键值的同时,设置过期时间,单位秒getset <key> <value>
:以新换旧,设置了新值同时获得旧值
列表操作
lpush/rpush <key> <value1> <value2> <value3>
:从左边/右边插入一个或多个值lpop/rpop <key>
:从左边/右边吐出一个值,rpoplpush <key1> <key2>
:从<key1>
列表右边吐出一个值,查到<key2>
列表左边lrange <key> <start> <stop>
:按照索引下标获得元素(从左到右)。llrang key 0 -1
表示从取出所有的元素index <key> <index>
:按照索引下标获取元素(从左到右)llen <key>
:获得列表长度linsert <key> before <value> <newvalue>
:在<value>
的后面插入<newvalue>
,after 就是在前面插入lrem <key> <n> <value>
:从左边删除 n 个 value(从左到右)lset <key> <index> <value>
:将列表 key 下标为 index 的值替换成 value
集合
sadd <key> <value1> <value2> ......
:将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略smember <key>
:取出该集合的所有值sismember <key> <value>
:判断集合<key>
是否含有该<value>
值,有返回 1,没有返回 0scard <key>
:返回该集合的元素个数srem <key> <value1> <value2> ......
:删除集合中的某个元素spop <key>
:随机从该集合中吐出一个值srandmember <key> <n>
:随机从该集合中取出 n 个值,不会从集合中删除smove <source> <destination> value
:把集合中一个值移动到另一个集合sinter <key1> <key2>
:返回两个元素的交集元素sunion <key1> <key2>
:返回两个元素的并集元素sdiff <key1> <key2>
:返回两个元素的交差集元素(key1 中有的,key2 中没有的)
哈希
hset <key> <field> <value>
:给<key>
集合中的<field>
键赋值<value>
hget <key> <field>
:从<key>
集合<field>
取出 valuehmset <key> <field1> <value1> <field2> <value2>...
:批量设置 hash 值hexists <key> <field>
:查看哈希表 key 中,给定域 field 是否存在hkeys <key>
:累出该 hash 集合的所有 fieldhvals <key>
:列出该 hash 集合的所有 valuehincrby <key> <field> <increment>
:为哈希表 key 中的域 field 的值加上自定义增量hsetnx <key> <field> <value>
:将哈希表 key 中的域 field 的值设置为 value,当且仅当域 field 不存在
有序集合
zadd <key> <score1> <value1> <score2> <value2>...
:将一个或多个 member 元素及其 score 值加入到有序集合 key 当中zrange <key> <start> <stop> [WITHSCORES]
:返回有序集合 key 中,下标在<start>
<stop>
之间的元素,带 WITHSCORES,让分数和值一起返回zrangebyscore key min max [WITHSCORES] [limit offset count]
:返回有序集合 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 和 max)的成员。有序集成员按 scores 的值递增(从小到大)次序排列zrevrangebyscore key max min [WITHSCORES] [limit offset count]
:同上,改为从大到小排列zincrby <key> <increment> <value>
:为元素的 score 加上增量zrem <key> <value>
:删除该集合下,指定值的元素zcount <key> <min> <max>
:统计该集合,分数区间内的元素个数zrank <key> <value>
:返回该值在集合中的排名,从 0 开始