redis可支持的数据类型
1、String 字符串
2、List 列表
3、Hash 哈希类型 {} key-value
4、Set 集合类型(无序集合)
5、Sorted Set 有序集合类型
一、字符串类型
String属于redis中最基本的数据类型,能够存储的最大数据大小为512MB,String在
解析时会被解析为字节Bytes类型。
1、存储设置
1.1、设置一个键值
接口:http://www.mm.com?name=MM&passwd=123456
格式:set key value ===> {‘key’:‘value’}
例子:set ‘a’ ‘123’ ===> {‘a’ : ‘123’}
set ‘b’ 123
1.2、设置多个值
格式:mset key1 value1 key2 value2 key3 value3 …
例子:mset ‘c’ ‘1’ ‘d’ ‘2’ ‘e’ ‘3’
1.3、设置键值及过期时间,时间以秒为单位
格式:setex key seconds value
例子:setex ‘f’ 20 ‘100’
2、获取值
2.1、取一个值
如果key不存在,返回nil或None或Null或0
格式:get key
例子:get ‘a’
2.2、取多个值
格式:mget key1 key2 key3 …
例子:mget ‘a’ ‘b’ ‘c’ ‘d’
3、更新值
格式:set key value
例子:set ‘a’ ‘300’
4、对value的操作
要求:字符串中的字符为数字类型
4.1、在原本数值基础上加一
格式:incr key
例子:incr ‘e’
4.2、在原本数值基础上减一
格式:decr key
例子:decr ‘e’
4.3、在原本数值基础上加num
格式:incrby key num
例子:incrby ‘e’ 200
4.4、在原本数值基础上减num
格式:decrby key num
例子:decrby ‘e’ 200
5、其他操作
5.1、追加内容(字符串拼接)
格式:append key value
例子:append ‘g’ ‘edf’
5.2、字符串长度
格式:strlen key
例子:strlen ‘g’
二、key相关操作
1、判断当前key是否:存在,存在返回1;不存在,存在返回0
格式:exists key
例子:exists ‘g’
2、设置过期时间
格式:expire key seconds
例子:expire ‘g’ 30
3、查看剩余时间
格式:ttl key
例子:ttl ‘g’
4、删除key及value
格式:del key1 key2 key3 …
例子:del ‘a’ ‘b’ ‘c’
5、查看key对应的value的类型
格式:type key
例子:type ‘d’
三、List 列表
1、添加元素
1.1、在开头添加元素
格式: lpush key value1 value2 … ===> {key:[value1,value2]}
例子:lpush 'l1’r
lpush ‘l1’ ‘b’ ‘c’ ‘d’
1.2、在尾部添加元素
格式: rpush key value1 value2 … ===> {key:[value1,value2]}
例子:rpush ‘l1’ ‘a’
1.3、在某个元素之前或之后添加新的元素
格式: linsert key before|after oldValue newValue
例子:linsert ‘l1’ before ‘c’ ‘new’
1.4、在指定的下标位置设置新的值
格式: lset key index newValue
例子:lset ‘l1’ 7 ‘BD’
2、删除
2.1、删除并返回第一个元素
格式: lpop key
例子:lpop ‘l1’
2.2、删除并返回最后一个元素
格式: rpop key
例子:rpop ‘l1’
3、取值
3.1、根据列表的下标取值
格式: lindex key index
例子:lindex ‘l1’ 1
3.2、获取列表中某一范围的数据 (闭区间)
格式: lrange key start stop
例子:lrange ‘l1’ 1 4
4、获取元素个数
格式: llen key
例子:llen ‘l1’
四、Hash 哈希类型
1、存储
1.1、存储一个数据
格式: hset key field value
例子:hset ‘h1’ ‘name’ ‘mea’ ===> {‘h1’: {name : mea}}
1.2、存储多个数据
格式: hmset key field1 value1 field2 value2 …
例子:hmset ‘h1’ ‘age’ ‘12’ ‘sex’ ‘1’
2、取值
2.1、获取一个数据
格式: hget key field
例子:hget ‘h1’ ‘name’
2.2、获取多个数据
格式: hmget key field1 field2 …
例子:hmget ‘h1’ ‘age’ ‘sex’
2.3、获取所有的字段及值
格式: hgetall key
例子:hgetall ‘h1’
2.4、获取所有的字段名称
格式: hkeys key
例子:hkeys ‘h1’
2.5、获取所有的值
格式: hvals key
例子:hvals ‘h1’
3、删除某个字段
格式: hdel key field
例子:hdel ‘h1’ ‘name’
4、获取当前字段个数
格式: hlen key
例子:hlen ‘h1’
5、判断某个字段是否存在,存在返回1,不存在返回0
格式: hexists key field
例子:hexists ‘h1’ ‘name’
五、Sets 无序集合
注:所有元素唯一,不会有重复数据
1、添加数据
格式:sadd key member1 member2 … ===> {key: (m1,m2…)}
例子:sadd ‘s1’ ‘a’ ‘b’ ‘c’ ‘a’
2、取值
格式:smembers key
例子:smembers ‘s1’
3、获取元素个数
格式:scard key
例子:scard ‘s1’
4、判断集合中是否有某个元素
存在返回1,不存在返回0
格式:sismember key member
例子:sismember ‘s1’ ‘a’
sadd ‘s1’ ‘a’ ‘b’ ‘c’
sadd ‘s2’ ‘b’ ‘c’ ‘d’ ‘e’
5、集合的操作
5.1、交集
格式:sinter key1 key2 …
例子:sinter ‘s1’ ‘s2’
5.2、并集
格式:sunion key1 key2 …
例子:sunion ‘s1’ ‘s2’
5.3、差集
格式:sdiff key1 key2 …
例子:sdiff ‘s1’ ‘s2’
sdiff ‘s2’ ‘s1’
六、Sorted Sets 有序集合
注:所有元素唯一,不会有重复数据
有序集合可以设置权重(score),系统会根据权重大小进行排序,权重值可以一致
1、添加数据
格式:zadd key score1 member1 score2 member2 …
例子:zadd ‘z1’ 5 ‘a’ 1 ‘b’ 10 ‘c’
2、取值
2.1、根据指定范围获取数据
格式:zrange key start end
例子:zrange ‘z1’ 1 3
2.2、返回数据的权重值
格式:zscore key member
例子:zscore ‘z1’ ‘a’
3、获取元素个数
3.1、获取元素个数
格式:zcard key
例子:zcard ‘z1’
3.2、获取权重范围的个数
格式:zcount key minScore maxScore
例子:zcount ‘z1’ 2 5