Redis数据类型之String的应用场景(案例详解) |
您所在的位置:网站首页 › redis的实际应用 › Redis数据类型之String的应用场景(案例详解) |
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步! 吾等采石之人,应怀大教堂之心,愿大家奔赴在各自的热爱里… 文章目录 一、文章序言二、常用命令三、业务场景 一、文章序言Redis概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。 为什么会出现Redis呢?它的到来是为了解决什么样的问题? Redis 是一个NOSQL类型数据库,是为了解决高并发、高扩展,大数据存储等一系列的问题而产生的数据库解决方案,是一个非关系型的数据库。 Redis中常见的数据类型我们一定要知道 如果你是redis的作者你会给redis设计什么数据类型呢? Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 我知道很抽象,为此整理了一个思维导图,我们对比一下Java中的数据结构,每一个数据结构的存在都有特定的应用场景 Redis数据存储格式 Redis自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储 数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串 本篇主要详解string类型简单使用和业务场景 二、常用命令Redis中string 类型 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型 Key是String类型的,Value是Java中所有的基本类型都可以。 string 类型数据的基本操作 添加/修改数据 set key value获取数据 get key删除数据 del key建议初学者自己安装Redis测试,此处是截图demo
string 类型数据的基本操作 添加/修改多个数据 mset key1 value1 key2 value2获取多个数据 mget key1 key2批量设置的语法前面带个m,像我第一次打就犯错了 获取数据字符个数(字符串长度) strlen key
看看案例在手比较容易理解
将key中存储的数字减1 DECR key将key中所存储的值加上increment INCRBY key increment将key中所存在的值减去decrement DECRBY key decrement
Redis中string的使用场景根据它自身特点决定 常见的有如下几种情况,我简单举例说明 业务场景 1、缓存功能:部分数据第一次查询查询数据库,查询完后存入redis中,后续再获取可以从redis中获取 2、验证码:网站登录中常有验证码,我们可以用此数据类型,手机号作为key,验证码作为value存储在redis中,设置过期时间,后续如果用户输入验证码,我们从redis中取值对比,如果过期则无效 set 13030303300 1234563、数字计数:比如帖子有点赞数,可以以帖子的id作为key,点赞总数作为value; 还比如访问量等,用户每次访问,访问总数可以加一,记录在redis中; 抖音的关注数,当大V注册抖音的时候,关注数会在非常短的时间内增加,这里我们可以用redis记录,一段时间后同步到mysql等数据库中; user-id:10086:fans → 123456 user-id:10086:blogs → 999 user-id:10086:likes → 8884、存储对象:以json形式存储,常见key=id value=json格式数据,如商品id为key,商品信息为value {"id":10086,"name":"辰兮要努力","fans":123456,"blogs":999, "likes":888}介绍一个之前接触过的案例:电影座位的排片,电影排片id为key,此场次座位信息为value,主要记录此场次的座位排布情况,场次座位以json形式存储在redis中,可以设置过期时间等同步应用到电影购票中,用户看到的座位从情况根据电影排片的key从Redis中取出 5、共享session 如我们第一次访问 https://editor.csdn.net这个域名,可能会对应这个IP 112.14.111.222的服务器,然后第二次访问,IP可能会变为112.13.121.219的服务器;负载均衡,一个域名对应多个服务器,将访问量分担到其他的服务器,这样很大程度的减轻了每个服务器上访问量 这里的本质还是将某一个东西存入redis缓存中,和缓存功能类似,描述的是不同的应用场景 负载均衡:把众多的访问量分担到其他的服务器上,让每个服务器的压力减少 6、分布式锁 适用场景:在一个集群环境下,多个web应用时对同一个商品进行抢购和减库存操作时,可能出现超卖时会用到分布式锁 setnx key value //存入一个不存在的键值对,如果key不存在,同set;若存在,则不做任何操作语法:SETNX key value 功能:当且仅当 key 不存在,将 key 的值设为 value ,并返回1; 若给定的 key 已经存在,则 SETNX 不做任何动作,并返回0。
我会陆续整理Redis其余数据类型的实践和使用,我们下期再见! 非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!! 2021年5月25日22:12:47 愿你们奔赴在自己的热爱里! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |