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