redis的五种数据类型
一、基本解释
结构类型 | 结构存储的值 | 可操作的行为 |
---|---|---|
sting | 可以是 字符串,也可以是整数、浮点数 | 如果值为字符串,可以对整个字符串或者字符串的一部分进行操作,如果值为整数或 者浮点数,可以执行自增或自减 |
list | 一种链表,链表上的每一个节点都包含了一个字符串 | 从链表的两端推入或者弹出元素; 根据偏移量对链表进行修剪;读取单个或者多个元素;根据值查找或者移除元素 |
set | 包含字符串的有无序集合,但每一个元素都是独一无二的 | 添加、获取、移除单个元素;检查元素是否存在于集合当中;计算并集、交集、差集;从集合中随机获取元素 |
Hash | 包含键值对的无序散列表 | 添加、获取、移除键值对;获取所有键值对 |
zset | 字符串成员与浮点数分值的有序映射,元素的排列顺序由分值的大小决定 | 添加、获取、删单个元素、根据分值范围或者成员获取元素 |
二、常用命令
string
SET 设置一个字符串 例:set hello world 结果:OK
GET 获取给定键对应的值 get hello “world”
DEL 删除一个给定的字符串 del hello (integer) 1 或者nil
INCR incr key-name --->将键对应的值加1
DECR decr key—name ---> 将键对应的值减1
incrby incrby key_name amount ---> 将键对应的值加amount
decrby decrby key_name amount ---> 将键对应的值减amount
incrbyfloat incrbyfloat key-name amount ---> 将键对应的值加上浮点数amount
append append key-name value1 --->将value追加到给定key对应值的末尾
getrange getrange key-name start end 获取给定key对应值的字串,
包含start和end在内
setbit setbit key-name offset value 将字符串看作是二进制的字符串,
并将位移当中位移量为offset的二进制位的值设置为value
List
RPUSH 将给定的值推入到列表的右侧
lpush lpush key-name value [value ...] ---> 从列表的左端推入一个元素
rpop rpop key-name ---> 从列表的右侧移除一个元素
LRANGE 给定给定范围的所有值
LINDEX 获取给定列表上的给定位置上的单个元素
LPOP 从列表的左侧弹出一个值,并将值返回
ltrim ltrim key-name start end ---> 对列表进行修剪,只保留从start到end
范围内的元素,start和end的元素也会保留
blpop blpop key-name [key-name] timeout ---> 从第一个非空列表中弹出最左侧
的元素或者在timeout秒之内阻塞并等待可弹出的元素出现(B即block(阻塞)的缩写)
brpop brpop key-name [key-name] timeout ---> 从第一个非空列表中弹出最右侧
的元素或者在timeout秒之内阻塞并等待可弹出的元素出现
rpoplpush rpoplpush source-key dest-key ---> 从source-key列表的右侧弹出一个
元素,压入到dest-key列表的左侧,并向用户返回这个元素
brpoplpush brpoplpush source-key dest-key timeout ---> 从source-key列表的
右侧弹出一个元素,压入到dest-key列表的左侧,并向用户返回这个元素,
如果source-key为空,那么在timeout秒之内阻塞并等待可弹出的元素出现,
时限到达后返回none
set
SADD sadd key-name item [item] 将给定的值添加到无序集合当中
SMEMBERS smembers key-name 返回该集合包含的所有元素
SISMEMBER sismember key-name item---> 检测元素item是否存在于key-name集合当中
SREM srem key-name item [item ...]如果给定元素存在于集合当中,则将其移除
scard scard key-name --> 返回集合包含的元素的数量
srandmember srandmember [count] ---> 从集合当中随机的返回一个或者多个元素
spop spop key-name ---> 随机的从集合中移除一个元素,并返回被移除的元素
smove smove source-key dest-key item ---> 如果source-key集合中包含
元素item,那么就从source-key集合当中将其移除,并且添加到dest-key集合
当中,成功返回1,失败返回0
sdiff sdiff key-name [key-name] ---> 返回差集
sdiffstore sdiff dest-key key-name [key-name] --->将差集存储到dest-key集合
当中
sinter sinter key-name [key-name] --->返回交集
sinterstore sinterstore dist-key key-name [key-name] ---> 将交集存储到
dist-key集合当中
sunion sunion key-name [key-name] --->返回并集
sunionstore sunionstore dist-key key-name [key-name] ---> 将并集存储到
dist-key集合当中
hash
HSET 在散列中添加给定的键值对
HGET 获取给定散列键的值
HGETALL 获取给定散列的所有键值对
HDEL 如果给定的键存在于散列当中,则将其移除
HMGET HMGET key-name key [key ...]--->从散列表当中获取一个或多个键的值
HMSET HMSET key-name key value [key value ...] ---> 为散列里的一个或
多个键设置值
HLEN HLEN key-name ---> 返回散列包含的键值对数量
HEXISTS hexists key-name key ---> 判断给定的键是否存在于散列中
HKEYS hkeys key-name ---> 获取散列包含的所有键
HVALS hvals key-name ---> 获取散列包含的所有值
HGETALL hgetall key-name ---> 获取散列包含的所有键值对
HINCRBY hincrby key-name key increment-->将键key存储的值加上整数increment
HINCRBYFLOAT hincrbyfloat key-name key increment
---> 将键key存储的值加上浮点数increment
zset
ZADD zadd key-name score member [score member] ---> 添加
ZRANGE zrange key-name start end [withscores] --->返回有序集合当中排名
介于start 和end之间的成员,如果给定了可选的withscores选项,那么命令
会将成员的分值也一并返回
ZRANGEBYSCORE 获取有序集合当中在给定分值范围内的所有成员
ZREM zrem key-name member [member...]
--->如果给定成员存在于有序集合当中,
则将其移除,并返回被移除的成员的数量
ZCARD zcard key-name --->返回有序集合包含的成熟数量
ZINCRBY zincrby key-name increment member
--->将成员member的分值加上increment
ZCOUNT zcount key-name min max ---> 返回分值介于min和max之间的成员数量
ZRANK zrank key-name member ---> 返回成员在有序集合当中的排名
ZSCORE zscore key-name member ---> 返回成员在有序集合当中的分值
ZREVRANK zrevrank key-name member ---> 返回有序集合里成员member的排名,
成员按照分值从大到小排列
ZREVRANGE zrevrange key-name start end member [withscores]
---> 返回有序集合给定排名范围内的成员,成员按照分值从大到小排列
ZRANGEBYSCORE zrangebyscore key max min [withscores] [limit offset count]
---> 返回集合当中,分值介于min和max之间的所有成员
ZREVRANGEBYSCORE zrevrangebyscore key max min [withscores] [limit offset count]
---> 同上,只是返回值是按分值从大到小的顺序返回的
ZREMRANGEBYRANK zremrangebyrank key start end
--->移除集合当中排名介于start和end之间的所有成员
ZREMRANGEBYSCORE zremrangebyscore key-name min max
---> 移除集合当中分值在min和max之间的所有成员
ZINTERSTORE zinterstore dest key-count key [key ...]
[WEIGHTS weight [weight]] [AGGREGATE sum|min|max]
---> 对给定的有序集合执行类似于集合的交集运算
ZUNIONSTORE 同上,只是求并集