Redis 开发规范
键值设计 key名设计 (1)【强制】不要包含特殊字符 (2)【建议】为了可读性,以业务名或数据库名为前缀,用冒号分隔 例如:trade:order:{id}(业务名:表名:id) (3)【建议】为了减少内存占用,保证语义的情况下,控制key的长度 例如:将 user:{uid}:friends:m
Redis 高并发缓存架构
锁优化 (1) 缩小锁粒度:加锁粒度要小,只给必要的代码加锁 (2) 使用分段锁 举例: 将锁 stock:product:101=1000 分成 10 段: stock:product:101:1=100, stock:product:101:2=100, …, stock:product:101
Redis 分布式锁
分布式锁可以将多个并发/并行执行的请求串行化,在分布式系统中,有些业务场景要求在同一时刻只有一个节点线程可以处理某种消息,这时候就可以用分布式锁。常见的分布式锁实现方案有:基于数据库的分布式锁、基于Redis的分布式锁、基于ZooKeeper的分布式锁。 Redis之所以可以做分布式锁,是因为Red
Redis 集群架构
Redis集群架构包含了哨兵和主从复制的能力,其中的每个小集群类似哨兵架构,主节点失效了也会重新选新的主节点。 不同的是: 集群架构中的数据是分片存储在不同节点的,而不是像哨兵架构所有数据存存储在一个节点 哨兵架构主从切换时存在访问瞬断问题,集群架构只有主从切换的那个小集群存在访问瞬断问题,其他小集
Redis 哨兵架构
在主从架构下,Redis主节点宕机后,需要手动指定新的主节点,非常不方便。因此引入了哨兵架构,它可以自动发现故障节点并进行故障转移,即主节点宕机后会自动选举新的主节点。 在哨兵架构下,Client端第一次间接从哨兵获取Redis主节点,后续会直接访问主节点。当Redis主节点发生变化,哨兵会第一时间
Redis 主从架构
在Redis主从架构下,一般是主备,即主节点提供读写操作,从节点作为备份。 也可以额外写代码做读写分离,即主节点提供写操作,从节点提供读操作和作为备份。 主从架构搭建 主节点配置(redis.conf): # 可选配置 port 6379 logfile "redis.log" # 日志文件 di
Redis 持久化
RDB 默认情况下,Redis使用RDB持久化机制,它保存内存数据库快照到dump.rdb的二进制文件中。 在redis.conf中配置RDB持久化触发策略: # 举例说明,可以配置多个save策略,注释掉所有save策略相当于关闭RDB持久化 save 60 1000 # 表示60秒内有不少于1
Redis 核心数据结构
核心数据结构 查询用法:如 help string string 字符串 常用命令 # 基本操作 SET {key} {value} # 设置一个键值对 MSET {key1} {value1} {key2} {value2}
Redis 安装使用
Redis安装 # 下载Redis源代码 wget https://download.redis.io/redis-stable.tar.gz # 解压 tar -zxvf redis-stable.tar.gz # 进入Redis目录 cd redis-stable # 编译安装 make
JVM 调优
调优工具 jmap jmap 是jdk自带的用来查看java程序内存信息的工具 pid 可通过 jps 获取 1⃣️ 查看Java对象实例信息:jmap -histo {pid} > {pid}.histo num: 序号 instances: 实例数量 byte