原创

SpringBoot 整合Redis缓存(上)

Redis介绍
Redis是一个开源的,内存存储的数据结构服务器,可以用作数据库来存储Key-Value数据,它支持字符串、哈希表、列表、集合、有序集合、位图、地理空间信息等数据类型,同时也可以作为高速缓存和消息队列代理。Redis是一个开源的,内存存储的数据结构服务器,可以用作数据库来存储Key-Value数据,它支持字符串、哈希表、列表、集合、有序集合、位图、地理空间信息等数据类型,同时也可以作为高速缓存和消息队列代理。
Redis和其他的NoSQL数据库相比,独特性在于支持复杂的数据结构这些数据结构通常都与程序的数据结构一致。

Redis在内存中存储数据,因此原则上,存放在Redis中的数据不应该大于内存容量,
否则会因为操作系统的虚拟内存导致性能降低。



Redis的应用场景
缓存热数据,所谓热数据,就是经常被查询的但是基本上不会被修改的数据,
首选的那肯定是redis来进行缓存。从而减轻数据库的压力,用户每次访问都将访问Redis缓存数据库,
而不是进行类似的select ....查询。



计数器,注入统计访问数量,点击次数,Redis单线程的特性可以有效地避免并发问题,保证不会出错。



队列,相当于消息队列,类似ActiveMQ,RocketMQ等,
当然如果对数据一致性要求高还是使用ActiveMQ,RocketMQ等专业性架构。
由于Redis把数据天津爱到队列是返回添加元素在队列的第几位,所以可以做出判断:
当前用户是第几个访问这个业务的。队列不仅仅可以把并发请求转变为串行,并且还可以做队列或者栈使用。



位操作,这个在大数据处理的范畴,用于数据量上亿的场景下
,例如几亿用户系统的签到,去重登录次数统计,某用户的在线状态等等,Redis内构件一个足够场的数组,
每个数组元素只能是0和1两个值,然后这个数组的下表index用来表示我们上面例子里面的用户id,
那么显然,这个几亿场的大数组就能通过下标和元素值来构件一个记忆系统,
使用到的命令:setbit \ getbit \ bitcount



分布式锁和单线程机制,验证前端的重复请求,可以通过Redis进行过滤:
每次请求将ip、参数、接口等hash作为key存储到redis中,
设置一个有效期,然后下次请求的时候现在redis中查询有没有这个key,进而验证是不是一定时间内的重复提交。
秒杀系统,基于redis是单线程特征,防止出现数据库"爆破"
最新列表,例如新闻列表页面的最新新闻列表,热点新闻等等,同热数据

排行榜,同热数据,定时缓存到redis中。
安装Redis
Windows下安装

在目录中打开CMD窗口并且执行如下命令

redis-server.exe redis.windows.conf
Cmd 复制
启动成功后打开另一个CMD窗口执行

redis-cli.exe -h 127.0.0.1 -p 6379
Cmd 复制
成功进行连接

Linux下安装

在终端中进行下载/解压/编译

$ wget http://download.redis.io/releases/redis-5.0.4.tar.gz
$ tar xzf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make
Linux 复制
编译完成后运行

$ src/redis-server
Linux 复制
你能使用Redis的内置客户端进行进行redis代码的编写:

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
Linux 复制
附上Redis教程
Redis教程

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、
Key-Value数据库,并提供多种语言的API。
云Redis数据库
那么线上环境也推荐使用阿里云出品的云数据库Redis版



云数据库Redis版

高可靠双机热备架构及可无缝扩展的集群架构,
满足高读写性能场景及容量需弹性变配的业务需求。
新用户试用仅需5元。
后端
  • 泽泽泽
  • 2020-11-05 11:29:32.289

评论区