常用命令
约 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 开始