Redis的Java 客户端
Redis 的 Java 客户端 redis 客户端 redis 支持多种语言的客户端 redis可以通过自带的redis-cli进行连接 如果就是连接的本机服务,以及端口没有改变,-h和-p都是可以省略的,最终就只需要输入密码即可,如果没有设置密码,那也不需要了,即: 常用命令 设置插入一条数据,默认插入0号库里 通过get来获取数据 选择不同的库 存入层

wxvirus2023年8月22日
大约 2 分钟
热 key 和大 key 的发现和解决办法
热 key 和大 key 的发现和解决办法 热 key 带来的问题 热 key 占用大量的 CPU 资源,使其效率降低,影响其他业务; 热 key 所在的节点访问量打算,容易造成物理网卡瓶颈; 超出redis承受能力后,容易造成击穿,这时大量访问打到数据库上造成数据库瓶颈; 解决办法 对热key根据一定的规则,增加后缀,让它变成好几个key,分散大宋不同的节

wxvirus2023年1月15日
大约 2 分钟
redis并发竞争问题以及分布式锁
redis 并发竞争问题以及分布式锁 并发竞争 多个客户端同时并发写一个key,本来应该先到的操作因为某些原因后到了,导致数据出错。; 期望结果:v1->a->b->c 可能因为某种原因b延迟了,就会导致: v1->a->c->b 解决 使用分布式锁 ,比如常用的zookeeper,redis也自带分布式锁,但是用的很少 使用分布式锁流程 系统 A 先拿到锁

wxvirus2023年1月15日
大约 3 分钟
如何避免高并发场景下数据不一致性
如何避免高并发场景下数据不一致性 双写一致性 当我们更新数据库的时候同时也把redis中的数据更新,这是正常情况。 假如在写入redis有延迟,就会造成数据不一致 解决 不考虑高并发时,使用锁就可以彻底解决问题,锁会把高并发串行化,但是效率就达不到了; 先更新数据库,后更新缓存; 先更新缓存,后更新数据库; 先删除缓存,后更新数据库; 先更新数据库,后删除缓

wxvirus2023年1月8日
小于 1 分钟
缓存问题应对方案
缓存问题应对方案 缓存穿透 " 短时间内大量访问不存在的数据,导致穿透redis直接访问数据库,造成数据库瓶颈" 一个web程序正常访问流程: 但是如果你的id是自增模式的,攻击者发来一个小于 0 的数值或者无穷大的数值,这个时候redis就会找不到,会直接到MySQL中查找,间接增加数据库的压力。 解决办法 没有值时,也保存一个对应的null值在redis

wxvirus2023年1月7日
大约 3 分钟
Redis Cluster集群
Redis Cluster 集群 主要是以多主多从的集群方式来保证高可用高并发。 特点 无中心的结构,数据分散在各个节点上,并且保存了整个集群的状态,每个节点都和其他节点相连; 官方规定最小需要 6 个节点,3 个主节点和 3 个从节点; 各个节点是通过gossip协议交换数据的,数据分布采用哈希槽算法实现,有一个crc16(key) % 16384取模的r

wxvirus2023年1月5日
大约 3 分钟
redis持久化机制以及缓存过期和淘汰策略
redis 持久化机制以及缓存过期和淘汰策略 持久化 模式 rdb:生成某一时刻的快照,然后保存到二进制文件中; aof:记录每一条写命令,追加到文件中,打开可以看到具体的操作记录; 混合模式: 上面 2 种方式的结合; 触发方式 save:会让redis处于阻塞状态,直到rdb持久化完成,线上环境需要谨慎使用; bgsave,它会fork出一个子进程,用来

wxvirus2023年1月4日
大约 4 分钟
单机安装redis
单机安装 redis 以centos7系统为例 安装 redis 依赖 Redis是基于 C 语言编写的,因此首先需要安装Redis所需要的gcc依赖 下载安装 如果是windows本机,去下载.tar.gz的去上传到Linux服务器上,或者虚拟机上;如果是直接在Linux里操作,可以使用wget去下载对应的包,下载完了解压即可;放到/usr/local/s

wxvirus2022年11月21日
大约 3 分钟