redis:(2)基本数据命令

学习资料《redis开发与运维》

全局命令:

1,查看所有键:keys *

2,键总数:dbsize

3,检查键是都存在:exists key

4,删除键:del key 

5,键过期:expire key seconds

6,键的数据结构类型:type key

字符串

       命令:

设置值:set key value

获取值:get key

批量设置:mset key value key value ........

批量获取:mget key key key .............

计数:incr key

追加值:append key value

字符串长度:strlen key

设置并返回原值:getset key value

设置指定位置的字符:setrange key offeset value

获取部分字符串:getrange key start end

       内部编码:

int(8字节),embstr(<=39),raw(>39)

       使用场景:

缓存,计数,共享Session ,限速

哈希

命令:

设置值:hset key field value

获取值:hget key field

删除值:hdel key field

计算feild个数:hlen key

批量设置获取值:hmset key feild value feild value feild value ...........

                                hmget key feild feild feild feild ..........

判断存在:hexists key feild

获取所有feild:hkeys key

获取所有value:hvals key

获取所有的feild-value:hgetall key

计算value长度:hstrlen key feild

内部编码:

压缩列表(ziplist):元素个数小于512个,同时所有值都小于64字节时

哈希表(hashtable):无法满足ziplist时,但是这个内存大,读写效率下降

使用场景:储存适合哈希结构的数据

列表

特点:有序,可重复

命令:

内部编码:

压缩列表(ziplist):同哈希

链表(linkedlist):无法满足压缩时

使用场景:

消息队列,文章列表

使用:

lpush+lpop=Stack(栈)
lpush+rpop=Queue(队列)
lpsh+ltrim=Capped Collection(有限集合)
lpush+brpop=Message Queue(消息队列)

集合

特点:不允许重复,无序

命令:

1,集合内操作

添加:sadd key element element element .........

删除:srem key element element element .........

计数:scard key

判断元素是否在集合中:sismember key element

随机返回个数元素:srandmember key count

随机弹出元素:spop key

获取所有元素:smember key

2,集合间操作

求多个集合交集:sinter key key ............

求多个集合的并集:suinon key key ..........

求多个集合差集:sdiff key key .........

将交集并集差集结果保存:

sinterstore destination key key ..........

suinonstore destination key key ..........

sdiffstore destination key key ..........

内部编码:

整数集合(intset):整数并且个数小于512时

哈希表(hashtable):无法满足是

使用场景:

给用户添加(删除)标签

给标签加(删除)用户

计算用户共同感兴趣的标签

有序集合

有序集合中的元素可以排序。但是它和列表使用索引下标作为
排序依据不同的是,它给每个元素设置一个分数(score)作为排序的依
据。如图2-24所示,该有序集合包含kris、mike、frank、tim、martin、tom,
它们的分数分别是1、91、200、220、250、251,有序集合提供了获取指定
分数和元素范围查询、计算成员排名等功能,合理的利用有序集合,能帮助
我们在实际开发中解决很多问题。

 

命令:

1,集合内

添加:zadd key score member score member ........

个数:zcard key

计算分数:zcore key member

计算排名:zrank key member(低到高),zrevrank key member(高到底)

删除成员: zrem key member

添加成员分数:zincrby key increment member

返回指定排名范围内成员:zrange key start end,zrevrange key start end

返回指定分数范围内的成员:zrangebyscore key min max ,zrevrangebyscore key max min

返回指定分数范围成员个数:zcount key min max

删除指定排名内升序元素:zremrangebyrank key start end

删除指定分数范围内的成员:zremrangebyscore key min max

2,集合间操作

交集:

zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
·destination:交集计算结果保存到这个键。
·numkeys:需要做交集计算键的个数。
·key[key...]:需要做交集计算的键。
·weights weight[weight...]:每个键的权重,在做交集计算时,每个键中
的每个member会将自己分数乘以这个权重,每个键的权重默认是1。
·aggregate sum|min|max:计算成员交集后,分值可以按照sum(和)、
min(最小值)、max(最大值)做汇总,默认值是sum。

并集:

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

内部编码:ziplist,跳跃表(skiplist)

使用场景

添加(取消)用户赞数,展示获取赞数最多的几个用户,展示用户信息以及用户分数,

键管理

1重命名:rename key newkey

2随机返回键:randomkey

3键过期:·expire key seconds:键在seconds秒后过期。
·expireat key timestamp:键在秒级时间戳timestamp后过期。

(1)键不存在,则返回0;

(2)如果赋值的过期时间为负值,键会立即删除,同del操作

(3)清除过期时间:persist

(4)对于字符串类型键,执行set会去掉过期时间(不懂)

(5)不支持二级数据结构(哈希,列表)过期时间

4迁移键

(1)move:reids内部的数据库之间的键迁移

(2)dump+restore:不同的redis之间进行迁移,dump先序列化,rdb格式的,再restore复原

(3)migrate:migrate命令也是用于在Redis实例间进行数据迁移的,实际上migrate命
令就是将dump、restore、del三个命令进行组合,从而简化了操作流程。
migrate命令具有原子性,而且从Redis3.0.6版本以后已经支持迁移多个键的
功能,有效地提高了迁移效率,总之这个会删除原来的键

遍历键

1,全量遍历键:keys pattern

(pattern直接使用星号,这是因为pattern使用的
是glob风格的通配符:
·*代表匹配任意字符。
·代表匹配一个字符。
160
·[]代表匹配部分字符,例如[1,3]代表匹配1,3,[1-10]代表匹配1到10
的任意数字。
·\x用来做转义,例如要匹配星号、问号需要进行转义。)

例子:keys *

2渐进式遍历

scan cursor [match pattern] [count number]

·cursor是必需参数,实际上cursor是一个游标,第一次遍历从0开始,每
次scan遍历完都会返回当前游标的值,直到游标值为0,表示遍历结束。
·match pattern是可选参数,它的作用的是做模式的匹配,这点和keys的
模式匹配很像。
·count number是可选参数,它的作用是表明每次要遍历的键个数,默认
值是10,此参数可以适当增大。

数据库管理

1,切换数据库:select dbIndex

与关系型数据库用字符来区分不同数据库名不同,Redis只是用数
字作为多个数据库的实现。Redis默认配置中是有16个数据库,用数字表示

2,清除数据库:flushdb(当前数据库)/flushall(所有数据库)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值