![](https://img-blog.csdnimg.cn/20201208133142199.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
Redis学习笔记
LeslieGuGu
人生如逆旅,我亦是行人
展开
-
Redis学习笔记(八)Redis缓存穿透和雪崩
缓存穿透(查不到) 概念 在默认情况下,用户请求数据时,会先在缓存(Redis)中查找,若没找到即缓存未命中,再在数据库中进行查找,数量少可能问题不大,可是一旦大量的请求数据(例如秒杀场景)缓存都没有命中的话,就会全部转移到数据库上,造成数据库极大的压力,就有可能导致数据库崩溃。网络安全中也有人恶意使用这种手段进行攻击被称为洪水攻击。 解决方案 1.布隆过滤器 对所有可能查询的参数以Hash的形式存储,以便快速确定是否存在这个值,在控制层先进行拦截校验,校验不通过直接打回,减轻了存储系统的压力。原创 2020-12-09 22:36:46 · 165 阅读 · 0 评论 -
Redis学习笔记(七)Redis主从复制与哨兵模式
一、主从复制 概念 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master/Leader),后者称为从节点(Slave/Follower),数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)。主从复制,读写分离! 默认情况下,每台Redis服务器都是主节点,一个主节点可以有0个或者多个从节点,但每个从节点只能由一个主节点。 作用 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余的方式。 故障恢复 :当主节原创 2020-12-09 21:58:18 · 275 阅读 · 0 评论 -
Redis学习笔记(六)Redis持久化和订阅发布
一、持久化之 RDB(Redis Databases) 在指定时间间隔后,将内存中的数据集快照写入数据库 ;在恢复时候,直接读取快照文件,进行数据的恢复 ; 默认情况下, Redis 将数据库快照保存在名字为 dump.rdb的二进制文件中。文件名可以在配置文件中进行自定义。 工作原理 在进行 RDB 的时候,redis 的主线程是不会做 io 操作的,主线程会 fork 一个子线程来完成该操作; Redis 调用forks。同时拥有父进程和子进程。 子进程将数据集写入到一个临时 RDB 文件中。 当原创 2020-12-09 19:30:51 · 182 阅读 · 0 评论 -
Redis学习笔记(五)Jedis和redis.conf详解
一、Jedis 1.修改redis.conf配置信息 将只绑定本地注释 保护模式改为 no 允许后台运行 2.开放端口6379 firewall-cmd --zone=public --add-port=6379/tcp --permanent 3.重启防火墙服务 systemctl restart firewalld.service 4.重启redis-server 5.导入依赖 6.编码测试 二、redis.conf详解 按“gg”移动到配置文件顶端 1.容量单位不区分大小写,G原创 2020-12-09 13:36:09 · 186 阅读 · 0 评论 -
Redis学习笔记(四)事务
事务 Redis的单条命令是保证原子性的,但是redis事务不能保证原子性 Redis事务本质:一组命令的集合。 ----------------- 队列 set set set 执行 ------------------- 事务中每条命令都会被序列化,执行过程中按顺序执行,不允许其他命令进行干扰。 一次性 顺序性 排他性 Redis事务没有隔离级别的概念 1.Redis事务操作过程 开启事务(multi) 命令入队 执行事务(exec) 所以事务中的命令在加入时都没有被执行,直到提交时才会原创 2020-12-08 22:47:02 · 241 阅读 · 1 评论 -
Redis学习笔记(三)五大基本数据类型和三种特殊数据类型
一、String字符串类型 官方文档 1.value:字符串、数字 2.场景: 计数器 统计多单位的数量:uid:1001:follow 0 incr 粉丝数 对象缓存存储 二、List列表类型(双向链表) LPUSH/RPUSH 左加/右加 LPOP 移除第一个元素 RPOP 移除最后一个元素 LRANGE list 0 -1 获取所有元素 LINDEX list 1 通过下标获得list中的某一个值 Llen 返回列表长度 Lrem list 1 value 移除list集合中指定个数的原创 2020-12-08 21:08:26 · 154 阅读 · 0 评论 -
Redis学习笔记(二)基础知识
基础知识 1.redis设置16个数据库,默认为o 2.切换数据库 select index 4.清空当前数据库 flushdb 4.清空全部数据库 FLUSHALL 5.redis是单线程的 redis是基于内存操作的,CPU不是redis性能瓶颈,而是机器内存和网络带宽。 6.问题:Redis单线程为什么还这么快? Redis是将所有的数据全部放到内存中,所以说使用单线程去操作效率就是最高的。多线程(CPU上下文会切换:耗时的操作!!!),对于内存系统来说,如果没有上下文切换效率就是最高的。原创 2020-12-08 16:35:33 · 120 阅读 · 0 评论 -
Redis学习笔记(一)Linux安装
安装(redis5.0.7) 1.基本的环境安装 yum install gcc-c++ (redis6.X版本要升级gcc) make make install make install确认 2.默认安装路径在/usr/local/bin目录下 3.把解压目录下的redis.conf文件复制到/local/bin下,作为以后的配置文件来进行启动 4.redis默认不是后台启动的,需要修改配置文件 5.通过指定的配置文件启动redis服务 redis-server redis.conf原创 2020-12-08 15:51:39 · 122 阅读 · 0 评论