Redis常用命令
1.键(key)
keys *:查看所有key;
exists key的名字:判断某个key是否存在;
move key dbID(0-15): 当前库就没有了,被移除了;
expire key 秒钟: 为给定的key设置过期时间;
ttl key: 查看还有多少秒过期,-1表示永不过期,-2表示已过期;
type key: 查看你的key是什么类型;
2. 字符串(String)
set/get/del/append/strlen;
Incr/decr/incrby/decrby:一定要是数字才能进行加减;
getrange/setrange:
getrange:获取指定区间范围内的值,类似between and的关系从零到负一表示全部;
setrange:设置指定区间范围内的值,格式是setrange key 位置值 具体值;
setex(set with expire) 键 秒值 值/setnx(set if not exist) 键;
setex:设置带过期时间的key,动态设置 : setex 键 秒值 真实值;
setnx:只有在 key 不存在时设置 key 的值:setnx 键 值;
mset/mget/msetnx:
mset:同时设置一个或多个 key-value 对。
mget:获取所有(一个或多个)给定 key 的值。
msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在(如果存在key,则都不会操作,因为msetnx是原子性型操作);
getset:将给定 key 的值设为 value ,并返回 key 的旧值(old value)。简单一句话,先get然后立即set;
3.列表(List)
lpush/rpush/lrange;
lpop/rpop,移除列表key的头/尾元素;
lindex,按照索引下标获得元素(从上到下)(格式:lindex key index);
llen:返回列表 key 的长度(格式:llen key);
lerm:根据参数 count 的值,移除列表中与参数 value 相等的元素(
格式: lerm key count value
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
count = 0 : 移除表中所有与 value 相等的值。);
ltrim ,截取指定范围的值后再赋值给key(格式:ltrim key start stop);
rpoplpush,移除列表的最后一个元素,并将该元素添加到另一个列表头部并返回(格式:rpoplpush source—key destination—key);
lset,将列表 key 下标为 index 的元素的值设置为 value(格式:lset key index value);
linsert,将值 value 插入到列表 key 当中,位于值 pivot 之前或之后;
(格式:linsert key before|after pivot value
当 pivot 不存在于列表 key 时,不执行任何操作。
当 key 不存在时, key 被视为空列表,不执行任何操作。
如果 key 不是列表类型,返回一个错误);
性能总结
它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
4.集合(Set)
sadd/smembers/sismember,格式:
sadd key member [member ...]
smembers key
sismember key member
scard:获取集合里面的元素个数(格式:scard key);
srem:删除集合中元素(格式:srem key member [member ...]);
srandmember,(格式:srandmember key [count] 不会修改set集合
如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素;
如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整 个集合;
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值;)
spop,移除并返回集合中的一个随机元素(格式:spop key);
smove,(格式:smove source destination member)将 member 元素从 source 集合移动到 destination 集合;
数学集合类
差集:sdiff(格式:sdiff key [key ...])
交集:sinter(格式:sinter key [key ...])
并集:sunion(格式:sunion key [key ...])
5.哈希(Hash)
hset/hget/hmset/hmget/hgetall/hdel,格式:
hset key field value:将哈希表 key 中的域 field 的值设为 value ;
hget key field:返回哈希表 key 中给定域 field 的值;
hmset key field value [field value ...]:同时将多个 field-value (域-值)对设置到哈希表 key 中;
hmget key field [field ...]:返回哈希表 key 中,一个或多个给定域的值;
hgetall key:返回哈希表 key 中,所有的域和值;
hdel key field [field ...]:删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略;
hlen,返回哈希表 key 中域的数量(格式:hlen key);
hexists,查看哈希表 key 中,给定域 field 是否存在(格式:hexists key field);
hkeys/hvals,格式:
hkeys key:返回哈希表 key 中的所有域;
hvals key:返回哈希表 key 中所有域的值;
hincrby/hincrbyfloat,格式:
hincrby key field increment:为哈希表 key 中的域 field 的值加上增量 increment;
hincrbyfloat key field increment:为哈希表 key 中的域 field 加上浮点数增量 increment ;
hsetnx,将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在(格式:hsetnx key field value)
6.有序集合Zset(sorted set)
zadd/zrange,格式:
zadd key score member [[score member] [score member] ...]:将一个或多个 member 元素及其 score 值加入到有序集 key 当中;
zrange key start stop [WITHSCORES]:返回有序集 key 中,指定区间内的成员,其中成员的位置按 score 值递增(从小到大)来排列;
zrangebyscore:(格式:zrangebuscore key min max [WITHSCORES] [LIMIT offset count]),返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员;
zrem:移除有序集 key 中的一个或多个成员,不存在的成员将被忽略(格式:zrem key member [member ...]);
zcard/zcount /zrank/zscore,格式:
zcard key:返回有序集 key 的基数;
zcount key min max:返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量;
zrank key member:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列,排名以 0 为底,也就是说, score 值最小的成员排名为 0 ;
zscore key member:返回有序集 key 中,成员 member 的 score 值;
zrevrank:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序,排名以 0 为底,也就是说, score 值最大的成员排名为 0 (格式:zrevrank key member);
zrevrange:返回有序集 key 中,指定区间内的成员,其中成员的位置按 score 值递减(从大到小)来排列(格式:zrevrange key start stop [WITHSCORES]);
zrevrangebyscore:返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列(格式:zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]);
版权声明:本文为CSDN博主「fwhui」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40804005/java/article/details/82919154