Redis(续)

一.Redis事务

1. Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

(1) 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
(2) 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

2. 一个事务从开始到执行会经历以下三个阶段:

(1) 开始事务。
(2) 命令入队。
(3) 执行事务。

3. 事务命令
命令 描述
MULTI 标记一个事务块的开始。
EXEC 执行所有事务块内的命令。
DISCARD 取消事务,放弃执行事务块内的所有命令。
WATCH 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
UNWATCH 取消 WATCH 命令对所有 key 的监视。

二. 主从模式

1. 作用:

(1) 备份数据
(2) 负载均衡,master节点可以进⾏读和写,slave节点只进⾏读操作。

2. Redis 的主从配置

(1) 在⼀台机器上启动多个redis实例,需要修改⼀下配置,保证多个redis实例出现共享数据。
(2) 修改master主服务器 redis.windows.conf

// 设置主服务器IP地址
bind 127.0.0.1
// 设置端口号
port 6379
// 数据存储文件名
dbfilename dump.rdb

(3) 修改slave从服务器

// 配置从服务器的IP地址
bind 127.0.0.1
// 配置端口号
port 6380
// 数据存储文件名
dbfilename dump.rdb
// 配置从服务器从属于主服务器的地址
slaveof 127.0.0.1 6379
3. 哨兵模式:

主从模式中,当master节点挂了以后,slave节点不能主动选举⼀个master节点出来,那么我就安排⼀个或多个sentinel来做这件事,当sentinel发现master节点挂了以后,sentinel就会从slave中重新选举⼀个新的master。

三. 缓存问题

1.缓存穿透

(1)缓存穿透是指查询⼀个数据库⼀定不存在的数据。

  • ⾼并发下,⼀秒钟前⼀百个请求向数据库请求,第⼀百零⼀个数据发现缓存有了,就去访问缓存,⽆影响。
  • ⾼并发下,⼀秒钟⼀百万个请求都去请求⼀个数据,但是缓存没有,再去请求数据库,数据库⾥也不存在,此时,这⼀百万个请求已经和数据库交互了。所以叫做绕过缓存,把redis缓存数据库穿透了。
  • 想象⼀下,uuid查询,很容易找到⼀个不存在的key,恶意攻击,利⽤这个漏洞,很容易给服务器带来巨⼤的压⼒。

(2) 解决⽅案:把不存在的给个null,放⼊缓存,可以防⽌攻击⽤户反复⽤同⼀个id暴⼒攻击。

2.缓存击穿

(1) 描述:缓存击穿是指缓存中没有但数据库中有的数据(⼀般是缓存时间到期),这时由于并发⽤户特别多,同时读缓存没读到数据,⼜同时去数据库去取数据,引起数据库压⼒瞬间增⼤,造成过⼤压⼒。
(2) 例⼦:淘宝爆款商品
(3) 解决⽅案:设置热点数据永远不过期。

3.缓存雪崩
  1. 缓存雪崩:
    (1)指缓存中数据⼤批量到过期时间甚⾄缓存服务器宕机,⽽查询数据量巨⼤,引起数据库压
    ⼒过⼤甚⾄宕机。
    (2)和缓存击穿不同的是,缓存击穿指并发查同⼀条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从⽽查数据库。
  2. 解决⽅案:⼀般采取不同分类商品,设计随机因⼦,缓存不同周期。

今天是我在千锋线上学习的第54天,加油!!!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,160评论 2 27
  • Memcache和Redis的区别?Redis和memcached 的内存管理的区别? 网络IO模型:Memcac...
    星冉子阅读 649评论 0 1
  • redis redis是单线程的,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。官方的一个...
    普度众生的面瘫青年阅读 5,315评论 0 4
  • 基于内存的NoSQL数据库。提供五种数据结构的存储。字符串、列表、集合、有序集合、散列表。Redis 支持很多特性...
    韩绝交阅读 813评论 0 1
  • 给女儿的一句话:要懂得延迟满足,学会用时间观点去看待事物,好的美的一定是经得起时间检验的。
    吾乃哲猫阅读 59评论 0 0

友情链接更多精彩内容