redis数据类型
更多的方法和数据类型知识可以到以下两个其中任意一个链接查看
http://www.redis.net.cn/order/
http://redisdoc.com/
- 字符串 String
- 哈希表 hash
- 列表 list
- 集合 set
- 有序集合 sorted set等
1.String字符串类型–value为字符串类型
- set key value 对不存在的键进行设置
- setnx key value 将指定的value存放到对应的key上,若对应的key已经存在,返回0;若不存在,存储成功,返回1
- exists key 判断key是否存在 不存在返回0 存在返回1
- expire key seconds 给已存在的key设置生存时间
- setex key seconds value 给该key设置存活时间seconds秒 可以给key设置的值的同时设置过期时间是一个原子操作,当seconds参数不合法是,命令返回一个错误代码提示
- ttl key 查询key的剩余生存时间
- psetex key milliseconds Value 已毫秒为单位给key设置生存时间
- pttl key 查询以毫秒为单位的key的剩余生存时间
- get key 根据键获取对应的value
- getset key Value 将键key的值设置value 如果没有旧值,返回nil(空),如果有旧值,就返回旧值
- strlen key 返回键key储存的字符串值的长度,不存在的键,长度为0
- append key value 给已存在的键key对应的值追加value,返回键key的长度,如果给不存在的key进行追加,等同于给不存在的键进行设置,如果存在那么就给此key追加返回键key的长度
- setrange key offset value 从偏移量offset开始,用value参数覆盖键key所存储的字符串的值。如果对不存在的键key执行此方法,那么空白处就用“\x00”填充
- getrange key start end 返回键key存储的字符串值的指定部分
例:getrange k4 0 -1 :从第一个到最后一个
getrange k4 -1 -5 :不支持回绕操作
getrange k4 0 12312:值域范围不超过实际字符串,超过部分自动被省略 - incr key 为键key存储的数字值加1,如果key不存在那么值就会先被初始化为0,然后再执行命令,返回的是执行incr操作后产生的值,是针对字符串的操作
incrby key increment:为键key储存的数字值加上增量increment,如果键key不存在会先被初始化为0,在执行incrby命令;如果存储的值不能被解释为数字,那么会返回一个错误
del key:根据键删除对应的value
2.Hash类型
- hset key field value: 存放一个指定key的field-value的数据库
- hset key field:获取指定key的field字段对应的value值。
- hkeys key: 获取指定key的所有field字段名
- hvals key: 获取指定key的所有value值。
- hgetall key: 获取指定key的所有的field和value值。
- HDEL key field: 删除指定key的field字段
3.list队列类型(可存入重复数据)
- lpush key value[value…]:将一个或多个值value插入到列表key的表头
- lrange key start stop:返回列表key中指定区间内的元素,区间以偏移量start和stop指定
- lpop key [count]:移除并返回列表key的头元素
- llen key:返回列表key的长度,如果key不是一个列表类型,返回一个错误;如果key不存在,则key被解释为一个空列表,返回0
- lpushx key value:将值value插入到列表key的表头;对于空列表执行lpushx,返回0,因为列表为空
4.set集合(不可存入重复数据)
-
sadd key value :将一个或多个member元素加入到集合key中
-
sismember key member:判断key中是否存在member元素,如果包含返回1,若不包含,返回0
-
smembers key:查询集合中key的所有成员
-
spop key:移除并返回集合中的一个随机元素
-
srandmember key [count]:如果命令执行时,只提供了
key
参数,那么返回集合中的一个随机元素。从 Redis 2.6 版本开始, [SRANDMEMBER]命令接受可选的
count
参数:- 如果
count
为正数,且小于集合基数,那么命令返回一个包含count
个元素的数组,数组中的元素各不相同。如果count
大于等于集合基数,那么返回整个集合。 - 如果
count
为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为count
的绝对值。
- 如果
-
smove source destination member:将member元素从source集合移动到destination
-
sinter key[key…]:返回一个集合的全部成员,是所有给定集合的交集
-
sunion key[key…]:返回一个集合的全部成员,是所有给定集合的并集
-
sdiff key[key…]:返回一个集合的全部成员,是所有给定集合的差集
5.有序集合(sorted set)
应用场景:排行榜
-
zadd key score member【【score member】【score member】…】:将一个或多个member元素及其score值加入到有序集key当中。
如果某个
member
已经是有序集的成员,那么更新这个member
的score
值,并通过重新插入这个member
元素,来保证该member
在正确的位置上。 -
zrange key start stop [withscores]:返回有序集key中,指定的区间内成员,成员位置按照score值递增从小到大来排序
-
zrevrange key start stop [withscores]:返回有序集key中,指定的区间内成员,成员位置按照score值递增从大到小排序