本篇文章通过命令和运用场景,带大家了解一下Redis中的五大基础类型,命令和实践比较多,希望对大家有所帮助!
redis 传统 5 大数据类型的运用
redis 传统 5 大数据类型的落地应用
Redis 介绍:
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)] 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel) 和自动 分区(Cluster)提供高可用性(high availability)。【相关推荐:Redis视频教程】
redis 命令查询:http://www.redis.cn/commands.html
备注:redis 命令不区分大小写,而 key 是区分大小写的
查询命令帮助:
help @类型名词
示例:
string 字符串类型
最常用
set key vuue
getkey
同时设置/获取多个键值
MSET key value [key value ...]
MGET key [key ,,,]
数值增减
递增数字 incr key
增加指定的整数 incrby key increment
递减数值 decr key
减少指定的整数 decrby key decrement
获取字符长度
STRLEN key
分布式锁
setnx key value
set key value [EX seconds] [PX milliseconds] [NX|XX]
- EX: key 在多少秒后过期
- PX: key自多少毫秒后过期
- NX: 当key 不存在的时候,才创建 key. 效果等同于 setnx
- XX: 当 key 存在的时候,覆盖 key
运用场景
- 商品编号、订单号采用 INCR 命令生成
- 是否喜欢文章点赞
阅读数:只要点击了 rest 地址,直接使用 incr key 命令增加一个数字 1,完成记录数字。
命令实践
hash 哈希类型
和 Java 数据结构映射
Map
一次设置一个字段值
HSET key field value
一次获取一个字段值
HGET key field
一次设置多个字段值
HMSET key field value [fild value ...]
一次获取多个字段值
HMGET key field [field ...]
获取所有字段值
hgetall key
获取某个 key 内的全部数量
hlen
删除一个 key
hdel
命令演示
应用场景
购物车的早期,当前中小厂可以使用
新增商品 --> hset shopcar:uid1024 334488 1
新增商品 --> hset shopcar:uid2014 334477 1
增加商品数量 --> hincrby shopcar:uid1024 334477 1
商品总数 --> hlen shopcar:uid1024
全部选择 --> hgetall shopcar:uid1024
list 列表类型
向列表左边添加元素
lpush key value [value ...]
向列表右边添加元素
rpush key value [value ...]
查看列表
lrange key start stop
获取列表中元素的个数
llen key
命令使用
应用场景
微信文章订阅公众号
1、【xx宝】和 【xx报】发布了文章分别是 11 和 22
2、 作者关注了他们两个,只要他们发布了新的文章,就会推送到我的 list
lpush likearticle: uid1024 11 22
3、查看作者自己的订阅号的全部文章,类似分页,下面 0-10 就是 一次显示 10 条 lrange likearticle:uid1024 0 10
set 不重复列表类型
添加元素
sadd key member [member ...]
删除元素
srem key member [member ...]
获取集合的所有元素
smembers key
判断元素是否在集合中
sismember key member
获取集合中的元素个数
scard key
从集合中随机弹出一个元素, 元素不删除
srandmember key [数字]
从集合中随机弹出一个元素,出一个删一个
spop key [数字]
集合运算
集合的差集运算 A - B
属于 A 但不属于 B 的元素构造成的集合
sdiff key [key ...]
集合的交集元算 A ^ B
属于 A 同时也属于 B 共同拥有的元素
simter key [key ...]
集合的并集运算 A v B
属于 A 或者属于 B 的元素合并后的集合
sunion key [key ...]
运用场景
微信抽奖小程序
1、用户 id, 立即参与, sadd key 用户id
2、显示已经有多少人参与了当前有 67231 人参与, scard key
3、抽奖(从 set 中任意选取 N 个中奖人)
srandmember key 2 随机抽奖 2 个人, 元素不会删除
spop key 3 司机抽奖 3 个人, 元素会删除
微信朋友圈点赞
1、新增点赞 ; sadd pub:msgid 点赞用户id1 点赞用户id2
2、取消点赞;srem pub:msgid 点赞用户id
3、展示所有点过赞的用户 smembers pub:msgid
4、点赞用户数统计,就是常见的待点赞的红色数数字 scard pub:msgid
5、判断某个朋友是否对楼主点过赞, sismember pub:msgid 用户id
微博好友关注社交关系
共同关注的人
sadd s1 1 2 3 4
sadd s2 2 3 6 8
sinter s1 s2
共同关注:我去某人的微博,马上获取和某人共同关注的人
我关注的人, 也关注了他(大家爱好相同)
我关注了华为余承东, 余承东也关注了张召动, 我和余总有共同的爱好
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
sismember s1 3
sismember s2 3
QQ内推可能认识的人
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
// 共同好友
sinter s1 s2
// 差集
sdiff s1 s2
sdiff s2 s1
zset 有序集合
常用命令
1、 向有序集合中添加一个元素和该元素的分数
2、 添加元素
- ZADD key score member [score member ...]
3、 按照元素分数从小到达的顺序返回索引从 strat 到 stop 之间的所有元素
- zrange key start stop [WITHSORES]
4、获取元素的分数
- zscore key member [member ...]
5、删除元素
- zrem key member [member ...]
6、 获取指定分数范围的元素
- zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
7、增加某个元素的分数
- zincrby key increment member
8、 获取集合中元素的数量
- zcard key
9、获得指定分数范围内的元素个数
- zcount key min max
10、按照排名范围删除元素
- zremrangebyrank key start stop
11、获取元素的排名
从小到大 zrank key member
从大到小 zrevrank key member
应用场景
1、更具商品销售对商品进行排序显示
思路:定义商品销售排行榜(sorted set 集合),key 为 goods:sellsort, 分数为商品销售数量。
商品编号 1001 的销量是 9 , 商品编号 1002 的销量是 15 | zadd goods:sellsort 9 1001 15 1002
有一个顾客又买了 2 件商品 1001 , 商品编号是 1001 响亮增加 2 | zincrby goods:sellsort 2 10001
求商品销量前 10 名 zrange goods:sellsort 0 10 withscores
2、 抖音热搜
1、点击视频
ZINCRBY hotavi:20220203 1 八百
ZINCRBY hotavi:20220203 15 八百 2 花木兰
2、展示当日排行前 10 条
zrevrange hotavi:20220203 0 9 withscores
更多编程相关知识,请访问:编程入门!!
以上是通过命令和运用场景,带你了解Redis中的五大基础类型的详细内容。更多信息请关注PHP中文网其他相关文章!

Redisoutperformstraditionaldatabasesinspeedforread/writeOperationsDuetoitsin-memorynature,niletraditionalditionalditionalditationaldatabasesexcelcelincomplexqueriessanddaintegrity.1)redisisisisideSidealForrealForreal-timeanalyticsanticanticanticanticanticantic.2)

用户edisinsteadofatraditionaldatabasewhenyourapplicationrequirespeedandreal-timedataprocorsing,sueAsAsforCaching,sessionmanagement,orrereal-timeanalytics.redisexcelsin:1)caching,缓存,减少载荷载量

Redis超越SQL数据库的原因在于其高性能和灵活性。1)Redis通过内存存储实现极快的读写速度。2)它支持多种数据结构,如列表和集合,适用于复杂数据处理。3)单线程模型简化开发,但高并发时可能成瓶颈。

Redis在高并发和低延迟场景下优于传统数据库,但不适合复杂查询和事务处理。1.Redis使用内存存储,读写速度快,适合高并发和低延迟需求。2.传统数据库基于磁盘,支持复杂查询和事务处理,数据一致性和持久性强。3.Redis适用于作为传统数据库的补充或替代,但需根据具体业务需求选择。

Redisisahigh-performancein-memorydatastructurestorethatexcelsinspeedandversatility.1)Itsupportsvariousdatastructureslikestrings,lists,andsets.2)Redisisanin-memorydatabasewithpersistenceoptions,ensuringfastperformanceanddatasafety.3)Itoffersatomicoper

Redis主要是一个数据库,但它不仅仅是数据库。1.作为数据库,Redis支持持久化,适合高性能需求。2.作为缓存,Redis提升应用响应速度。3.作为消息代理,Redis支持发布-订阅模式,适用于实时通信。

redisisamultifaceTedToolThatServesAsAdatabase,server和more.itfunctionsasanin-memorydatastrustore,supportsvariousDataStructures,and CanbeusedAsacache,MessageBroker,sessionStorage,sessionStorage,sessionstorage,andford forderibedibedlocking。

Redisisanopen-Source,内存内部的库雷斯塔氏菌,卡赫和梅斯吉级,excellingInsPeedAndVersatory.itiswidelysusedforcaching,Real-Timeanalytics,Session Management,Session Managements,and sessighterboarderboarderboardobboardotoitsssupportfortfortfortfortfortfortfortfortorvortfortfortfortfortfortforvortfortforvortforvortforvortfortforvortforvortforvortforvortdatastherctuct anddatataCcessandcessanddataaCces


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 英文版
推荐:为Win版本,支持代码提示!