Redis 基本类型的操作命令

一:字符串类型
1 添加元素
单个元素添加:set key value 例如: set bar hello
多个元素添加: mset key1 value1 key2 value2 ....... 例如:mset bar1 hello bar2 world
2 取出元素
单个元素取出:get key 例如:get bar ==> "hello"
多个元素取出:mget key1 keys2...... 例如:mget bar1 bar2
3 删除元素
del key 例如:del bar 返回删除的个数1,如果key不存在,删除失败,则返回0。del 命令不支持通配符。
4 获得元素的长度
strlen key 例如:strlen bar
5 递增递减数字
incr(decr) key 例如:incr num ,如果num不存在,则自动创建num并赋值为0,并自增1,如果num已经存在,则在原本的基础之上增加1。
如果要指定增加的数组,则使用incrby(decrby) key value。例如:incrby num 5
6 判断key是否存在
exists key 存在返回1,不存在返回0。
上述命令都会返回增、减之后的结果值。

二:散列类型
散列类型类似于字典结构以键值对的形式存储数据。映射字段只能是字符串类型,一个散列类型键最多可以包含2^31 - 1 个字段。
1 赋值
单个值:hset key field value 例如:hset car color blue
多个值:hmset key field1 value1 field2 value2 ......
例如:hmset car color blue price 10000000 type baoma
2 取值
单个取值:hget key field
取多个值:hmget key filed1 field2......
例如:hmget car color price type
如果想获取键中所有的字段值却不知道键中有哪些字段,可以使用hgetall key 来取得。
3 删除元素
hdel key field [field1 field2 .......] 可以删除一个字段或者字段
4 获得字段数量

hlen key 

5 只获得字段名或者字段值
hkeys key hvals key
6 判断字段是否存在

hexists key field 

三:列表类型
列表内部是使用双向链表实现的,所以像列表两端添加元素的时间复杂度是O(1),越接近列表两端速度就越快。获取头部或者尾部的10条记录也是极快的。
1 向列表两端增加元素
lpush key value [value ......] 例如:lpush numbers1 1 2 3
结果是: 3 2 1
rpush key value [value .......] 例如: rpush numbers2 1 2 3
结果是:1 2 3
2 从列表两端弹出元素
lpop rpop
3 获取元素的个数

 llen key

4 获得列表片段

lrange key start  stop

列表的索引从0开始,截取的片段包含两端的值。最右端的值为-1。
lrange num 0 -1 可以获得整个列表的全部值。
5 向列表中插入元素
linsert key before | after pivot value 该命令首先会在列表中从左到右查找值为pivot的元素。然后根据第二个参数before或者after来决定将value插入到该元素的前面还是后面,返回插入后列表的元素个数。
6 获得/设定指定索引的元素值
lindex key index 获取指定index的元素值
lset key index value 将指定index 设置为新的value值。
7 只保留列表指定片段
ltrim key start end 该命令可以删除指定索引范围之外的所有元素。
8 将列表从一个列表转入另外一个列表
rpoplpush source destination 将列表source中的元素转入到destination列表中。

四:集合类型
在集合中每个元素都是不同的,没有顺序。一个集合类型键可以存储2^32 - 1个。
1 增加/删除元素

sadd key member [member ...]

srem key member [membber ...]

2 获得集合中所有的元素

smembers key

3 判断元素是否在集合中
sismember key member 存在返回1,不存在返回0
4 获得集合的长度

scard key

5 集合之间的运算
sdiff key [key ....] 执行集合之间的差集运算
sinter key [key ...] 执行集合之间的交集运算
sunion key [key ...] 执行集合之间的并集运算
集合运算并将结果存储分别使用sdiffstoresinterstoresunionstore
6 随机获得集合中的元素
srandmember key 从集合中获取一个元素。
srandmember key count 获得count个随机元素
当count > 0,会随机从集合里获得count个不重复的元素;当count < 0,会随机从集合里面获取count个元素,这些元素可能相同。
7 从集合中弹出一个元素
spop key 弹出的同时会删除元素

五:有序集合类型
有序集合是使用散列表和跳跃表来实现的,所以即使读取位于中间部分的数据
速度也很快。+inf 表示正无穷大,-inf 表示负无穷大。
1 增加元素

zadd key score member [score  member]

2 获得元素的分数

zscore key member

3 获得排名在某个范围的元素列表
zrange key start stop [withscores] 元素从小到大排列
zrevrange key start stop [withscores] 元素从大到小排列
4 获得分数在某一范围内的列表

zrangebyscore key min max [withscores] [limit offset count]

例如:zrangebyscore scoreboard 80 100 ,如果希望包含80但不包含100,只需要在100前加(号,即zrangebyscore key scoreboard 80 (100
5 增加某个元素的分数

zincrby key increment member

6 获得集合中元素的数量

zcard key

7 获得指定分数范围内的元素个数

zcount  key min  max

8 s删除一个或者多个元素

zrem key member [member ...]

9 按照排名范围删除
zremrangebyrank key start stop 删除在指定范围内的所有元素,并返回删除元素的数量。
10 按照分数范围删除元素

zremrangebyscore key min  max

11 获得元素的排名
zrank key member (最小的排名为0)
zrevrank key member (最大的排名为0)
12 计算有序集合的交集

zinterstore destination numkeys  key [key ....] [weights weight [weight ....]]  [aggregate sum | min | max]

例如:

zadd sortedsets1 1 a 2 b

zadd sortedsets2 10 a 20 b

zinterstore result 2 sortedsets1 sortedsets2 ==> a 11 b 22 默认相同key的值score相加
zinterstore result 2 sortedsets1 sortedsets2 aggregate min 则是按照每个参与计算的集合中该元素分数最小值。得到的结果是a 1 b 2
zinterstore result 2 sortedsets1 sortedsets2 weights 1 0.1 得到的结果是
a 2 b 4

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值