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
浙公网安备 33010602011771号