redis常用命令

一、对key的操作

1、查看当前库所有的key :keys *

2、判断某个key是否存在:exists key

3、查看key的类型:type key

4、删除指定的key:

  del key

   unlink key 根据key非阻塞删除,先将key从元数据中删除,后续异步删除key

5、设置key的过期时间(10秒):expire key 10

6、查看key剩余多少过期时间:ttl key  (-1表示永不过期,-2表示已过期,其他表示剩余多少秒)

7、查看当前库中key的数量:dbsize

 

二、String类型操作

1、添加键值对:set key value

2、通过key获得值:get key

3、对指定key的值在末尾追加:append key value 

4、获得指定key的值的长度:strlen key

5、添加键值对,只有key不存在时才添加,并且返回1,当key存在时,不添加,返回0;

  setnx key value

6、将key中存储的数字值自增1:incr key

7、将key中存储的数字值减一1:decr key

注意:自增,自减操作在redis中都是原子性。

8、将key中存储的数据值增加/减少指定的值10 :incrby/decrby key 10

9、同时添加多个键值对:mset key1 value1 key2 value2 

10、同时获得多个key的值:mget key1 key2

11、同时设置多个键值对,只有当所有的键值对都不存在时,才设置(如果有其中一个key存在,那么所有的键值对都不添加):msetnx key1 value1 key2 value2

12、获取指定key范围的值(索引位置为0-3的值):getrange key 0 3

13、设置指定key的值从指定位置开始覆盖(索引为3的位置):setrange key 3 value     (会将key原来的值,从索引为3的位置开始覆盖value,value有几位就覆盖几位,剩余的保留)

14、以旧换新,将旧的值替换出来:getset key value

String 类型的数据结构为简单动态字符串,是可以修改的字符串,内部结构类似与ArrayList,先预分配一块冗余的空间,必变频繁的扩容。

String类型的扩容,当预存空间大小小于1M时,每次扩容为预存空间的2倍。当预存空间大于1M时,每次扩容只增加1M.

 

二、list(一键多值)类型操作

1、从左边依次插入多个值:lpush key value1 value2 value3

2、从右边依次插入多个值:rpush key value1 value2 value3

3、从列表左边/或右边吐出一个值(吐出之后这个值就不在列表里面了):lpop/rpop key

4、从列表1中右边/吐出一个值插入到列表2的左边(吐出之后,这个就不在列表里面了):rpoplpush key1 key2

5、从左边按照索引下标取元素:lrange key 0  1  (注意:0   -1表示取所有的元素)

6、按照索引下标获取指定位置的元素(从左往右):lindex key 1

7、获取列表长度:llen key

8、在value前面插入新的值:linsert key before value newvalue

9、从左边删除3个值为value的元素:lrem key 3 value

10、将列表key下标为4的元素替换成value:lset key 4 value

List的数据结构

  list的数据结构为快速链表quickList

当列表元素较少时,会使用一块连续的内存存储,这个结构是ziplist,叫做压缩列表。它所有元素紧挨在一起存储,分配的是一块连续的内存。

当列表元素数量比较多的时候才会改成quicklist。

因为普通链表需要的附加指针空间大,会比较浪费内存。如果这个列表里只存int类型的数据,那么每个数据还要两个额外的指针,这个指针相对数据来说就浪费内存。

Redis将链表和ziplist组合成了quicklist,也就是将多个ziplist使用双向链表连起来这样既满足了快速插入和删除的性能,又不会造成太大的内存空间冗余。

 

三、set集合

1、向指定key添加value:sadd key value

2、检查集合key中是否有value值(有返回1,没有返回0):sismember key value

3、获取集合key中的成员数:scard key

4、获取集合key中所有成员:smembers key

5、将集合key1中value元素移动到集合key2中:smove key1 key2 value

6、随机吐出集合key中的一个元素(吐出之后会在集合中删除):spop key

7、随机获得集合key中count个值:srandmember key count

8、移除集合key中一个或多个元素:srem key value1 value2

9、 返回给定集合的并集:sunion key1 key2

10、返回第一个集合key1 与其他集合之间的差集:sdiff key1 key2 

11、返回给定集合的交集:sinter key1 key2 

 

四、hash

1、向redis里面添加一个hash:hset key field value

2、一次向hash表里添加多个filed:hmset key field1 value1 field2 value2 

3、删除一个或多个field:hdel key field1 field2

4、查看hash表key中指定的field是否存在:hexists key field

5、获取hash表key中field的值:hget key field

6、获取hash表key中所有的值:hvals key

7、获取hash表key中所有的field和值:hgetall key 

8、为hash表key中整数值field 加上num:hincrby key field num

9、为hash表key中浮点值field 加上num:hincrbyfloat key field num

10、 获取hash表key中所有的field:hkeys key

11、获取hash表key中field的数量:hlen key

12、获取hash表key中所有给定field的值:hmget key field1 field2

13、只有在field值段不存在时,设置field的值:hsetnx key field value

 

posted on 2022-08-23 23:45  如履薄地  阅读(514)  评论(0)    收藏  举报