Redis的五大常用数据类型和使用场景

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ, 它支持多种类型的数据结构。

1.String字符串类型

set key value  :设置值;   set a “123”

get key:获取值;     get a  “123”

del key:删除数据;   del vv

EXISTS key:判断某一个key是否存在;   EXISTS a

APPEND :追加字符串;   APPEND  a “hello” (integer) 8;追加字符串,如果当前key不存在,就相当于set key

STRLEN :获取字符串的长度;   strlen a (integer) 8

incr是值自增,值+ 1;   incr key

decr是值自减,值- 1;   decr key

INCRBY/DECRBY 设置步长 i+=,指定增减量;     INCRBY/DECRBY key 5;值增长/减少5次

GETRANGE :获取指定范围的字符串;   getrange key 0 3:获取闭区间[0 3]的字符串,如果是获取闭区间[0,-1],当第二个参数设置为-1时,即截取全部字符串,与get key是一样效果。

SETRANGE:替换指定位置开始的字符串;SETRANGE key 1 xx

setex  :设置key的过期时间

setnx  :不存在再设置

Mset:批量设置值;mset k1 v1 k2 v2 k3 v3

Mget:批量获取值;mget k1 k2 k3

getset :获取旧值并设置新值;如果不存在值,则返回 nil

使用场景:  

String类型作为数值时的增减;计数器;粉丝数;数据时效性设置;对象缓存存储;高热度数据访问加速

2.List

列表

在redis里面,我们可以把list当作栈、队列、阻塞队列。所有的list命令都是用 L 开头的,Redis不区分大小命令

LPUSH:左边添加值   

RPUSH是右边添加值   

LRANGE是指定下标获取元素

LPOP:移除并返回最左边元素

RPOP:移除并返回最右边元素

Lindex :通过下标获取值

Llen :返回列表的长度

Lrem :移除指定的值,精确匹配

Ltrim :截取,通过下标截取指定的位置(闭区间)

Push: 移除原列表的最右边元素,并添加到新列表的最左边

Lset :更新当前下标的值,若当前列表不存在更新则会报错

Linsert: 将某个具体的value插入到列表中某个元素

使用场景:

1).List实际上是一个链表,before Node after , left,right 都可以插入值

2).如果key不存在,创建新的链表;如果key存在,新增内容

3).如果移除了所有值,则是空链表,说明不存在了

5).在两边插入或者改动值,效率最高;若是中间元素,相对来说效率会低一点

6).可以使用List实现消息排队、消息队列 (Lpush Rpop)、 栈( Lpush Lpop)

3.Set无序不重复

Sadd: 给set集合添加元素

SISMEMBER :判断某一个值是不是在set集合

scard :获取集合中的内容元素个数

srem :移除set集合中的指定元素

SRANDMEMBER :随机抽选出一个元素

Spop: 随机删除key

smove :将一个指定的值,移动到另外一个set集

使用场景:

例如微博,A用户将所有关注的人放在一个set集合中,将它的粉丝也放在一个set集合中。其中共同关注,共同爱好,二度好友,推荐好友等。

4.Hash哈希

Hset:设置值 Hget:获取值

Hmset:批量设置值 hmget:批量获取值

hgetall :获取全部的数据

hdel :删除hash指定key字段,对应的value值也就消失

hlen :获取hash表的字段数量

HEXISTS :判断hash中指定字段是否存在

Hkeys:只获得所有field,hvals只获得所有value

hincrby :设置增量,若是正数则增加,若是负数则减少

hsetnx :设置值时,若key已存在则失败返回0,不存在则成功返回1

使用场景:

h存储变更的数据,例如将user作为键,name age作为值进行存储,尤其是是用户信息之类的,经常变动的信息。hash 更适合于对象的存储,String更加适合字符串存储。

5.Zset有序集合:zset 即是对set排序

zadd :添加

zrange :查看

ZRANGEBYSCORE :实现升序

ZREVRANGEBYSCORE: 实现降序

zrem :移除

zcard :获取有序集合中元素的个数

zcount :获取集合中指定区间的元素个数

使用场景:

存储班级成绩表、工资表排序等,实现排行榜应用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值