缓存中间件 Redis分布式缓存

文章目录

第三章 缓存中间件

第二节 Redis分布式缓存

3.2.1 Redis常用命令和数据结构(一)

1. Redis介绍
2. 通用命令

在这里插入图片描述

  • 启动服务后打开客户端
./bin/redis-cli #还有相关的参数指令
3. 数据结构
1)String
  • String数据结构是简单的key-value类型,value其实不仅是String,也可以是数字。
  • 使用场景:微博数,粉丝数(常规计数),速率限制器
  • 常用命令
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNlLVk0S-1570522671209)(evernotecid://C8B8AA71-A9FF-4008-AE69-9DC7DAF8E08F/appyinxiangcom/7433385/ENResource/p1013)]@w=450
set hello tony ex 3 # 3秒后失效
set hello tony px 3000  # 3000毫秒后失 px 3000
set hello tony nx   # 只有当没有这条数据时才能设置成功
  • 速率限制器是用户请求后,记录用户请求次数,当达到一定次数后不再允许其访问。
2)List
  • List就是链表,相信略有数据结构知识的人都应该能理解其结构。
  • 使用场景:微博的关注列表,粉丝列表
  • 常用命令
    在这里插入图片描述
3)Set
  • Set就是一个集合,集合的概念就是一堆不重复值的组合。利用Redis提供的Set数据结构,可以存储一些集合性的数据。
  • 使用场景:实现如共同关注、共同喜好、二度好友
  • 常用命令
    在这里插入图片描述
4)Sorted Set
  • Sorted Set的使用场景与set类似,区别是set不是自动有序的,而Sorted Set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。
  • 使用场景:排行榜、按照用户投票和时间排序
  • 常用命令
    在这里插入图片描述
5)Hash
  • Hash是一个string类型的field和value的映射表
  • 使用场景:存储部分变更数据,如用户信息
  • 常用命令
    在这里插入图片描述
6)GEO
  • GEO 3.2 版本开始对GEO(地理位置)的支持
  • 使用场景:LBS应用开发
  • 常用命令
    在这里插入图片描述
7)Stream
  • Stream 5.0 版本开始的新结构“流”
  • 使用场景:消费者生产者场景(类似MQ)
  • 常用命令
    在这里插入图片描述
4. 代码示例

代码参考:redisdemo

  • 相关配置和API使用请查看官网介绍
  • 如果代码中访问不了redis,需要调整redis的访问策略
  • /usr/local/redis/ 目录下创建conf目录
  • /usr/local/redis/conf/ 目录下导入官方的redis.conf文件
bind 127.0.0.1
# bind 0.0.0.0 #任意网络均可访问,但因为有安全漏洞,建议只给内网服务器ip进行绑定
# 绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。
# 这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。
# 如果bind选项为空的话,那会接受所有来自于可用网络接口的连接。
# 如上配置,绑定一个127.0.0.1的本机地址和192.168.1.100的外网地址。
  • 重新启动redis,加载配置文件。
./bin/redis-server conf/redis.conf

3.2.1 Redis常用命令和数据结构(二)

1. Redis介绍
  • 几种基础API的使用参考官网和代码示例。(后期有空把示例写入该文档)
  • key事件通知(Redis keyspace notifications):通过发布/订阅获得key事件的通知(版本2.8或更高)。
  • 可能接收的事件示例如下:
    • 所有影响给定键的命令。
    • 所有接收LPUSH操作的键。
    • 所有在数据库0中到期的键。
  • 可用场景:
    • 订单超时未支付场景,定时删除,删除后会通知客户端进行处理。
    • 分布式锁
  • 默认不开启事件监听,如果要使用,推荐使用更改配置文件的方式
  • Redis Server提供类似数据库的功能,每个Server上可以设置多个database
  • 使用 select 选择第几个库

3.2.2 Redis持久化

1. 持久化介绍
  • Redis的数据默认都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。
    在这里插入图片描述
2. 持久化方式
1)RDB持久化
  • RDB持久化方式能够在指定的时间间隔对你的数据进行快照存储。
i. 命令使用
  • 客户端直接通过命令 BGSAVE 或者 SAVE 来创建一个内存快照。
    • BGSAVE 调用fork来创建一个子进程,子进程负责将快照写入磁盘,而父进程仍然继续处理命令。
    • SAVE 执行SAVE命令过程中,不再响应其他命令。
  • redis.conf 中调整save配置选项,当在规定的时间内,Redis发生了写操作的个数满足条件会触发发生 BGSAVE 命令
# 900秒之内至少一次写操作
save 900 1
# 300秒之内至少发生10次写操作
save 300 10
# 60秒之内至少发生10000次
save 60 10000
ii. 优点与缺点

在这里插入图片描述

2)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值