Redis
文章平均质量分 93
Coding Machine
加油
展开
-
06.Redis缓存设计与优化
缓存穿透缓存穿透是指缓存和数据库都没有数据,导致请求落在数据库上,造成数据库短时间内承受大量请求而崩溃。造成缓存穿透的原因:系统业务代码或数据出现问题恶意攻击、爬虫等造成大量空命中解决方案:缓存空对象,并设置过期时间布隆过滤器(见后文)缓存雪崩缓存同一时间大面积的失效、缓存层支撑不住或宕机后,后面的所有请求都落在数据库上,造成数据库短时间压力巨大而崩掉。解决方案:针对缓存大面积失效:缓存数据设置随机过期时间,业务时间 + 随机时间缓存预热互斥锁针对缓存扛不住压力、宕原创 2022-02-21 23:52:53 · 516 阅读 · 0 评论 -
05.Redis 数据结构与BitMap的使用
Redis 基本特性非关系型的键值对数据库,可以根据键以O(1) 的时间复杂度取出或插入关联值Redis 的数据是存在内存中的键值对中键的类型可以是字符串,整型,浮点型等,且键是唯一的键值对中的值类型可以是string,hash,list,set,sorted set 等Redis 内置了复制,磁盘持久化,LUA脚本,事务,SSL, ACLs,客户端缓存,客户端代理(6.0新特性)等功能可以搭建 Redis 哨兵架构和 Redis Cluster 模式提供高可用性Redis的数据结构R原创 2022-02-21 23:51:18 · 752 阅读 · 0 评论 -
04.分布式锁及其原理
一、管道 与 Lua 脚本管道(Pipeline)客户端一次性发送多个请求,不用等待服务器响应,待所有脚本执行完成后一起响应。客户端用 pipeline 方式打包命令发送,redis必须在处理完所有命令前先缓存起所有命令的处理结果。打包的命令越多,缓存消耗内存也越多。pipeline 中发送的每个命令都会被 server 立即执行,如果执行失败,将会在此后的响应中得到信息,不会影响管道里面后续其他命令的执行。注意: 管道不是原子的,但 Redis 提供的批量操作命令(例如 MSET)是原子的Lua原创 2022-02-21 23:49:11 · 593 阅读 · 0 评论 -
03.Redis 集群架构
Redis 集群架构前面已经了解了哨兵架构,哨兵架构已经能满足许多一般会互联网情况下的需求,但是它也存在一下缺点:主节点宕机后,重新选举期间的几秒甚至几十秒是不可用的,而且只有一个节点作为写节点,撑死最大并发也就 10W作用。并且Redis最大内存不宜过大(10G)否则影响性能。那么什么是 Redis 集群呢?redis 集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis 集群不需要 sentinel 哨兵,也能完成节点移除和故障转移的功能。需要将每个节点设置成集原创 2022-02-21 23:47:40 · 1696 阅读 · 0 评论 -
02.Redis持久化、主从复制与哨兵模式
一、Redis持久化RDB快照(snapshot)默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。可以对 Redis 进行设置(save N M),让它在“ N 秒内数据集至少有 M 个改动 ”这一条件被满足时, 自动保存一次数据集(当前时刻的整个内存)为 RDB 文件。也可以进入 Redis 客户端,手动执行命令 save 或 bgsave 立即生成 dump.rdb 快照文件(默认存放路径为 dump.rdb)。如果需要关闭 RDB 快照,只需要将 redi原创 2022-02-21 23:38:59 · 672 阅读 · 0 评论 -
01.Redis数据类型及高性能原理
Redis 的五种数据结构及其应用场景Redis官方文档链接:https://redis.io/commands 中文文档:http://redisdoc.com/一、字符串命令解释SET key value存入字符串键值对MSET key value [key value …]批量存储字符串键值对SETNX key value存入一个不存在的字符串键值对GET key获取一个字符串键值MGET key [key …]批量原创 2022-02-21 23:35:14 · 1152 阅读 · 0 评论