SpringBoot 整合Redis缓存(上)
Redis介绍
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窗口执行
redis-cli.exe -h 127.0.0.1 -p 6379
成功进行连接
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
编译完成后运行
$ src/redis-server
你能使用Redis的内置客户端进行进行redis代码的编写:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
附上Redis教程
云Redis数据库
那么线上环境也推荐使用阿里云出品的云数据库Redis版
2 comments
互访~~~祝安康
好滴