redis五种数据类型常用指令


redis命令平台:try.redis.io

1、String

String是最常用的一种数据类型,普通的key/value存储都可以归为此类。

1.1、set/get

           1)设置key对应的值为String类型的value
           2)获取key对应的值

1.2、mget

批量获取多个key的值,如果可以不存在则返回nil

1.3、incr && incrby

incr对key对应的值进行加加操作,并返回新的值;
incr age

incrby加指定值
incrby age 30

1.4、decr && decrby

decr对key对应的值进行减减操作,并返回新的值;decrby减指定值

1.5、setnx

设置key对应的值为String类型的value,如果key已经存在则返回0

1.6、setex

设置key对应的值为String类型的value,并设定有效期

1.7、其他命令

         1)getrange  获取key对应value的子字符串
         2)mset
              批量设置多个key的值,如果成功表示所有值都被设置,
              否则返回0表示没有任何值被设置
         3)msetnx,同mset,不存在就设置,不会覆盖已有的key
         4)getset  设置key的值,并返回key旧的值
         5)append
              给指定key的value追加字符串,并返回新字符串的长度  

2、Hash

类似于HashMap key,value
Map<String,Map<String,String>> 第一个String,Map<String,String>的名称,
存多个Map<String,String>通过第一个String 作为key来区分

2.1、hash运用场景

   1、Hash是一个String类型的field和value之间的映射表,
   2、redis的Hash数据类型的key(hash表名称)对应的value实际的内部存储结构为一个HashMap
   3、Hash特别适合存储对象。
       相对于把一个对象的每个属性存储为String类型,将整个对象存储在Hash类型中会占用更少内存。
   4、所存储的成员较少时数据存储为zipmap,当成员数量增大时会自动转成真正的HashMap,
   此时encoding为ht。
  5、运用场景:
       如用一个对象来存储用户信息,商品信息,订单信息等等。

2.2、Hash命令实例

      1、 hset——设置key对应的HashMap中的field的value
		hset myinfo name fbiao
		hset myinfo age 25
		hset myinfo address shpd
      2、 hget——获取key对应的HashMap中的field的value
		hget myinfo name
      3、 hgetall——获取key对应的HashMap中的所有field的value
		hgetall myinfo
      4、hlen--返回key对应的HashMap中的field的数量
	  5、hmset myinfo1 name cg age 30 address shpd

## 如何创建一个注脚

3、List

3.1、lpush

在key对应的list的头部添加一个元素,以数据栈进行存储,先进后出

3.2、lrange

获取key对应的list的指定下标范围的元素,-1表示获取所有元素

3.3、lpop

从key对应的list的尾部删除一个元素,并返回该元素

3.4、rpush

在key对应的list的尾部添加一个元素

3.5、rpop

从key对应的list的尾部删除一个元素,并返回该元素

在这里插入图片描述

4、Set

4.1、sadd

在key对应的set中添加一个元素

4.2、smembers

获取key对应的set的所有元素

4.3、spop

随机返回并删除key对应的set中的一个元素

4.4、sunion

求给定key对应的set并集

4.5、sinter

求给定key对应的set交集
在这里插入图片描述

5、SortSet

set的基础增加顺序score,再根据score进行排序
应用场景:通过sortset实现排行榜

5.1、zadd

在key对应的zset中添加一个元素

5.2、zrange

获取key对应的zset中指定范围的元素,-1表示获取所有元素

5.3、zrem

删除key对应的zset中的一个元素

5.4、zrangebyscore

返回有序集key中,指定分数范围的元素列表,排行榜中运用

5.5、zrank

返回key对应的zset中指定member的排名。其中member按score值递增(从小到大);
排名以0为底,也就是说,score值最小的成员排名为0,排行榜中运用

5.6、zcard

返回key对应的元素数量

在这里插入图片描述
set是通过hashmap存储,key对应set的元素,value是空对象
sortset是怎么存储并实现排序的呢,hashmap存储,还加了一层跳跃表
跳跃表:相当于双向链表,在其基础上添加前往比当前元素大的跳转链接
在这里插入图片描述

6、redis消息订阅发布

作用:发布订阅类似于信息管道,用来进行系统之间消息解耦,类似于mq,rabbitmq、rocketmq、kafka、activemq,
在这里插入图片描述
主要有消息发布者和消息订阅者。比如运用于:订单支付成功,会员系统加积分、钱包进行扣钱操作、发货系统(下发商品)

6.1、PUBLISH

将信息message发送到指定的频道channel。返回收到消息的客户端数量

在这里插入图片描述

6.2、SUBSCRIBE

订阅给指定频道的信息
在这里插入图片描述
在这里插入图片描述

6.3、UNSUBSCRIBE

取消订阅指定的频道,如果不指定,则取消订阅所有的频道。
在这里插入图片描述

6.4、redis的消息订阅发布和mq对比?

redis发布订阅功能比较薄弱但比较轻量级,mq消息会进行持久化,redis数据持久化会丢失数据,数据可靠性比较差,redis发布订阅无后台功能通过msgId、msgKey进行查询消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值