Redis数据类型
String数据类型
概述:String是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等
- append
1、append #Redis的append命令是往一个key追加value。如果没有key,则创建一个并且设置value
例:
redis-cli
exists blue
append blue hello
append blue lic
get blue
- set
2、SET #获取数据,命令格式为 get key
例:
set blue 'hello lic!'
get blue
- strlen
3、strlen #获取指定Key的字符长度
例:
strlen blue
- incr、decr、incrby、decrby
4、incr #该Key的值递增1
decr #该Key的值递减1
incrby #增加指定的整数
decrby #减少指定的整数
例:
set sky 10
incr sky
decr sky
incrby sky 10
decrby sky -46
get sky
del sky
keys *
incr sky
keys *
set sky white
get sky
incr sky
- getset
5、getset #获取计数器原有值的同时,并将其设置为新值,这两个操作原子性的同时完成
例:
incr white
getset white 0
get white
- setex
6、setex #设置指定Key的过期时间为xx秒
ttl key #查看键的剩余存活时间
例:
setex white 20 'kiki'
ttl white
get white
等待20s
get white
ttl white
set white 'kiki'
ttl white
- setnx
7、setnx #创建指定键,若该键存在则不执行,不存在则执行
例:
del white
setnx white lic
setnx white kiki
get white
- mset、mget、msetnx
8、mset #批量设置键的值
mget #批量获取键的值
msetnx #批量设置键值,若有存在的键则不执行
例:
mset k1 blue k2 sky
mget k1 k2
msetnx k2 white k3 cloud
keys k*
msetnx k4 white k3 cloud
keys k*
List数据类型
概述:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素
- LPUSH/LPUSHX/ LRANGE:
redis 127.0.0.1:6379> del mykey
(integer) 1
redis 127.0.0.1:6379> lpush mykey a b c d
#mykey键并不存在,该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入。
(integer) 4
redis 127.0.0.1:6379> lrange mykey 0 2 #取从位置0开始到位置2结束的3个元素。
1) "d"
2) "c"
3) "b"
redis 127.0.0.1:6379> lrange mykey 0 -1 #取链表中的全部元素,其中0表示第一个元素,-1表示最后一一个元素。
1) "d"
2) "c"
3) "b"
4) "a"
redis 127.0.0.1:6379> lpushx mykey2 e #mykey2键此时并不存在,因此lpushx命令将不会进行任何操作,其返回值为0。
(integer) 0
redis 127.0.0.1:6379> lrange mykey2 0 -1 #可以看到mykey2没有关联任何List Value。
(empty list or set)
redis 127.0.0.1:6379> lpushx mykey e #mykey键此时已经存在,所以lpushx命令插入成功,并返回链表中当前元素的数量。
(integer) 5
redis 127.0.0.1:6379> lrange mykey 0 0 #获取该键的List Value的头部元素。
1) "e"
- LPOP/LLEN:
redis 127.0.0.1:6379> del mykey
(integer) 1
redis 127.0.0.1:6379> lpush mykey a b c d
(integer) 4
redis 127.0.0.1:6379> lpop mykey #移除并返回mykey键的第一个元素,即从右往左第一个
"d"
redis 127.0.0.1:6379> lpop mykey
"c"
redis 127.0.0.1:6379> llen mykey #获取表中元素数量,在执行lpop命令两次后,链表头部的两个元素已经被弹出,此时链表中元素的数量是2
(integer) 2
- LREM/LSET/LINDEX/LTRIM:
redis 127.0.0.1:6379> del mykey
(integer) 1
redis 127.0.0.1:6379> lpush mykey a b c d a c #为后面的示例准备测试数据。
(integer) 6
redis 127.0.0.1:6379> lrem mykey 2 a #从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量。
(integer) 2
redis127.0.0.1:6379&