key与value
- key字符串类型
- value 支持五种数据类型:
- 字符串型 string
- 字符串列表 lists
- 字符串集合 sets
- 有序字符串集合 sorted sets
- 哈希类型 hashs
String
string是redis最基本的类型,最大能存储512MB数据,string类型是二进制安全的,即可以为任何数据,比如数字、图片、序列化对象等
- 设置
- 设置键值
set key value
- 设置键值及过期时间,以秒为单位
setex key second value
- 设置多个键值
mset key value [key value ...]
- 获取key值,设置key值
getset key value
- 获取key值,设置key值
- 设置多个键值
- 设置键值及过期时间,以秒为单位
- 设置键值
- 获取
- 根据键获取值,如果不存在此键则返回null
GET key
- 根据多个键获取多个值
MGET key [key ...]
- 根据多个键获取多个值
- 根据键获取值,如果不存在此键则返回null
- 运算(要求:值是数字)
- 将key对应的value加1
INCR key
- 将key对应的value加整数
INCRBY key increment
- 将key对应的value减1
DECR key
- 将key对应的value减整数
DECRBY key decrement
- 将key对应的value减1
- 将key对应的value加整数
- 将key对应的value加1
- 其它
- 追加值
APPEND key value
- 获取值长度
STRLEN key
- 获取值长度
- 追加值
存储lists类型
在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表 一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是 4294967295。
-
设置
-
在头部插入数据
LPUSH key value [value ...]
- 在尾部插入数据
RPUSH key value [value ...]
- 在一个元素的前|后插入新元素
LINSERT key BEFORE|AFTER pivot value
- 在一个元素的前|后插入新元素
- 在尾部插入数据
-
仅当参数中指定的key存在时,在指定的key所关联的list的头部插入value
lpushx key value [value ...]
-
仅当参数中指定的key存在时,在指定的key所关联的list的尾部插入value
rpushx key value [value ...]
- 设置指定索引的元素值,索引是基于0的下标.索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LSET key index value
- 设置指定索引的元素值,索引是基于0的下标.索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
-
-
获取
-
移除并且返回key对应的list的第一个元素
LPOP key
- 移除并返回key对应的list 的最后一个元素
RPOP key
- 移除并返回key对应的list 的最后一个元素
-
返回存储在 key 的列表里指定范围内的元素,start 和 end 偏移量都是基于0的下标,偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
RANGE key start stop
- 将链表中的尾部元素弹出并添加到头部
rpoplpush resource destination
- 返回列表里索引对应的元素
LINDEX key index
- 返回列表里索引对应的元素
- 将链表中的尾部元素弹出并添加到头部
-
-
其它
-
裁剪列表,改为原集合的一个子集,start 和 end 偏移量都是基于0的下标,偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LTRIM key start stop
-
删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素
lrem key count value
- 返回存储在 key 里的list的长度
LLEN key
- 返回存储在 key 里的list的长度
-
set
无序集合,元素为string类型,元素具有唯一性,不重复
- 设置
- 添加元素(如果key值已有则不会重复添加)
SADD key member [member ...]
- 添加元素(如果key值已有则不会重复添加)
- 获取
- 返回key集合所有的元素
SMEMBERS key
- 返回集合元素个数
SCARD key
- 随机返回set中的一个成员
srandmember key
- 返回集合元素个数
- 返回key集合所有的元素
- 其它
- 求多个集合的交集
SINTER key1 key2
- 将返回的交集存储在destination上
sinterstore destination key1 key2
- 求某集合与其它集合的差集
SDIFF key1 key2
- 求多个集合的合集
SUNION key1 key2
- 求多个集合的合集
- 求某集合与其它集合的差集
- 将返回的并集存储在destination上
sunionstore destination key1 key2
- 判断元素是否在集合中
SISMEMBER key member
- 删除set中指定的成员
srem key member1、member2
- 删除set中指定的成员
- 将key1、key2相差的成员存储在destination
sdiffstore destination key1 key2
- 判断元素是否在集合中
- 求多个集合的交集
Sorted-Sets
Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score) 却是可以重复的.
-
将所有成员以及该成员的分数存放到sorted-set中
ZADD key score member [score member ...]
- 返回指定范围内的元素
ZRANGE key start stop
- 返回元素个数
ZCARD key
- 返回元素个数
- 返回有序集key中,score值在min和max之间的成员
ZCOUNT key min max
- 返回有序集key中,成员member的score值
ZSCORE key member
- 设置指定成员的增加的分数
zincrby key increment member
- 设置指定成员的增加的分数
- 返回有序集key中,成员member的score值
- 返回指定范围内的元素
-
获取集合中脚标为start-end的成员,[withscores]参数表明返回的成员包含其分数
zrange key start end [withscores]
- 返回成员在集合中的位置
zrank key member
- 移除集合中指定的成员,可以指定多个成员
zrem key member[member…]
- 返回指定成员的分数
zscore key member
- 返回指定成员的分数
- 移除集合中指定的成员,可以指定多个成员
- 返回成员在集合中的位置
-
返回分数在[min,max]的成员并按照分数从低到高排序。[withscores]:显示分数;[limit offset count]:offset,表明从脚标为offset的元素开始并返回count个成员
zrangebyscore key min max [withscores][limit offset count]
Hash
hash用于存储对象,对象的格式为键值对,每一个Hash 可以存储4294967295个键值对
- 设置
- 设置单个属性
HSET key field value
- 设置多个属性
HMSET key field value [field value ...]
- 设置多个属性
- 设置单个属性
- 获取
- 获取一个属性的值
HGET key field
- 获取多个属性的值
HMGET key field [field ...]
- 获取所有属性和值
HGETALL key
- 获取所有的属性
HKEYS key
- 获取所有属性和值
- 返回包含属性的个数
HLEN key
- 获取所有值
HVALS key
- 获取所有值
- 获取多个属性的值
- 获取一个属性的值
- 其它
- 判断属性是否存在
HEXISTS key field
- 删除属性及值
HDEL key field [field ...]
- 设置key中filed的值增加increment
hincrby key field increment
- 删除属性及值
- 判断属性是否存在
通用操作
- keys pattern 获取所有与pattern匹配的key,返回所有与该key匹配的keys。*表示任意一个或多个字符,?表示任意一个字符
- delete key1 key2 删除指定的key
- exists key 判断该key是否存在,1存在,0不存在
- rename key newkey 为当前key重命名
- expire key 设置过期时间
- ttl key 获取该key所剩超时时间,没有设置超时时间,返回-1,-2表示超时不存在
- type key 获取key的类型
网友评论