新人入坑Redis必会的吐血总结 (2)

decr key:将指定的key的value原子性的递减1,如果该key不存在,其初始值为0,在incr之后的值为-1,如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息,相当于--i

example:

127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> decr age (integer) 17

append key value:拼接字符串,如果该key存在,则在原有的value后追加该值,如果该key不存在,则重新创建一个key/value

example:

127.0.0.1:6379> set information hel OK 127.0.0.1:6379> append information lo (integer) 5 127.0.0.1:6379> get information "hello"

incrby和decrby:只能对字符串是数字的进行操作,incrby key value是对原有的key的值增加value,而decrby key value是对原有的key的值减少value

example:

127.0.0.1:6379> get age "17" 127.0.0.1:6379> incrby age 10 (integer) 27 127.0.0.1:6379> decrby age 10 (integer) 17 127.0.0.1:6379> get information "hello" 127.0.0.1:6379> incrby information 10 (error) ERR value is not an integer or out of range 127.0.0.1:6379> decrby information 10 (error) ERR value is not an integer or out of range 2、Redis-hash

Redis中的hash类型可以看成具有string key和string value的map容器,所以该类型非常适合于存储值对象的信息。如username,password和age等。如果hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个hash可以存储4294967295个键值对。

hash特点:占用的磁盘空间极少

赋值:

hset key field value:为指定的key设定field/value对(键值对)

example:

127.0.0.1:6379> hset key1 field1 123 (integer) 1

hmset key field value[field2 value2...]:设置key中的多个field/value

example:

127.0.0.1:6379> hmset aaa name kitty age 20 OK 取值:

hget key filed:获取指定的key的field的值

example:

127.0.0.1:6379> hget key1 field1 "123"

hmget key filed1 field2...:获取key中的多个field的值

example:

127.0.0.1:6379> hmget aaa name age 1) "kitty" 2) "20"

hgetall key:获取key中的所有field-value2

example:

127.0.0.1:6379> hgetall aaa 1) "name" 2) "kitty" 3) "age" 4) "20" 删除

hdel key field[field...]:可以删除一个或多个字段,返回值是被删除的字段个数

example:

127.0.0.1:6379> hdel key1 field1 (integer) 1

del key:删除整个list

example:

127.0.0.1:6379> del aaa (integer) 1 增加数字

hincrby key field increment:设置key中的field增加increment,如age增加20

example:

127.0.0.1:6379> hmset aaa name kitty age 20 OK 127.0.0.1:6379> hincrby aaa age 20 (integer) 40 扩展命令

hexists key field:判断指定的key中的field是否存在

example:

127.0.0.1:6379> hexists aaa name (integer) 1 127.0.0.1:6379> hexists aaa aaaa (integer) 0

hlen key:获取key所包含的field的数量

example:

127.0.0.1:6379> hlen aaa (integer) 2

hkeys key:获得所有的字段

example:

127.0.0.1:6379> hkeys aaa 1) "name" 2) "age" 3、Redis-list

Redis中list选取的是链表,因为在Redis操作中,最多的操作是进行元素的增删

赋值

lpush key value [value1 value2 ...] 在指定的key所关联的list头部插入所有的value,如果该key不存在,该命令在插入之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据,插入成功,返回元素的个数。

example:

127.0.0.1:6379> lpush score1 1 2 3 4 5 (integer) 5

rpush key value [value1 value2 ...] 在该list的尾部添加元素

example:

127.0.0.1:6379> rpush score2 1 2 3 4 5 (integer) 5 取值

lrange key start end:获取链表中从start到end的元素的值,start、end从0开始计数;也可以为负数,若为-1则表示链表尾部的元素,-2表示倒数第二个,以此类推...

example:

127.0.0.1:6379> lrange score1 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" 127.0.0.1:6379> lrange score2 0 -1 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 删值

lpop key:返回并弹出指定的key关联的链表中的第一个元素,即头部元素。如果该key不存在,返回nil;若key存在,则返回链表的头部元素

example:

127.0.0.1:6379> lpop score1 "5" 127.0.0.1:6379> lpop score2 "1"

rpop key:从尾部弹出元素

example:

127.0.0.1:6379> rpop score1 "1" 127.0.0.1:6379> rpop score2 "5" 扩展

llen key:返回指定的key关联的链表中的元素的数量

example:

127.0.0.1:6379> llen score1 (integer) 3 127.0.0.1:6379> llen score2 (integer) 3

lrem key count value:删除count个值为value的元素,如果count大于0,从头到尾遍历并删除count个值为value的元素,如果count小于0,则从尾到头遍历并删除,如果count等于0,则删除链表中所有等于value的元素。

example:

127.0.0.1:6379> lrem score1 1 2 (integer) 1 127.0.0.1:6379> lrem score2 1 2 (integer) 1 通过索引替换

lset key index value:设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。操作链表的脚标不存在则抛出异常

example:

127.0.0.1:6379> lset score1 0 1 OK 127.0.0.1:6379> lset score2 0 1 OK 在索引前/后插入元素

linsert key before|after pivot value:在pivot元素前或者后插入value这个元素

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygzfd.html