4 Rision666

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 17w+

redis高级之持久化(四)---rdb与aof区别

上两篇文章我们详细介绍了rdb和aof,两种持久化方式我们在实际应用中该如何选择呢?他们各有什么优缺点,如下rdb与aof的选择之感对数据非常敏感,建议使用默认的aof持久化方案aof持久化策略使用everysecond,每秒种fsync一次,该策略redis扔可以保持很好的处理性能,当出现问题时,最多丢失0-1秒内的数据。 注意:由于aof文件存储体积较大,且回复速度较慢 数据呈现阶段有效性,建议使用rdb持久化方案 数据可以良好的做到阶段内无丢失(该阶段是开发者或者运维人员手

2020-06-28 11:24:37

redis高级之持久化(三)---AOF方式

Rdb存储的弊端存储数据量较大,效率较低(基于快照思想,每次读写都是全部数据,当数据量巨大,效率非常低) 大数据量下的IO性能较低 基于fork创建子进程,内存产生额外消耗 宕机带来的数据丢失风险解决思路不写全数据,仅记录部分数据 改记录数据未记录操作过程 对所有操作均进行记录,排除丢失数据的风险AOF概念AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中命令达到恢复数据的目的,与rdb相比可以简单描述为记录数据为记录数据

2020-06-28 11:17:13

redis高级之持久化(二)---RDB方式

RDB启动方式谁,什么时间,干什么事情命令执行谁:redis操作者(用户) 什么时间:即时(随时进行) 干什么事情:保存数据RDB启动方式---save指令命令save作用:手动执行一次保存操作RDB启动方式---save指令相关配置如下为配置文件:RDB启动方式---save指令工作原理RDB启动方式---bgsave指令数据量过大,单线程执行方式造成效率过低如何处理?后台执行谁:redis操作者(用户)发起指令:redis服务器控制

2020-06-28 10:27:19

redis高级之持久化(一)---持久化简介

我们将从以下几个方面对redis持久化进行介绍,本篇介绍持久化的简介,先对持久化有一个感性的认识,然后介绍两种持久化方案,再分析一下这两种持久化有什么区别,最后介绍一下持久化的应用场景。持久化简介 RDB AOF RDB和AOF区别 持久化应用场景意外的断电自动备份什么是持久化?利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。为什么要进行持久化?防止数据的意外丢失,确保数据安全性持久化过程保存什么?将当前数据状态进行保

2020-06-28 09:22:08

图解mysql索引---历史最详细、最清楚的讲解

我们先来列一个提纲,从以下几个方面介绍mysql索引1、索引的本质 2、索引结构及其详细解读(二叉树、红黑树、HASH、B-Tree、B+Tree) 3、非聚集索引(MyISAM)、聚集索引(InnoDB) 4、常见问题一、索引的本质索引是帮助mysql高效获取数据的排好序的数据结构 索引存储在文件里 索引结构 二叉树 Hash B树注意:索引起的作用是:排好序的快速查找数据结构!索引会影响where后面的查找,和o...

2020-06-18 18:02:58

redis高级之锁---普通锁、分布式锁、分布式锁改良

基于特定条件的事务执行---锁业务场景天猫双11热卖过程中,对已经售罄的货物追加补货,4个业务员都有权限进行补货,补货的操作可能是一系列的操作,牵扯到多个连续操作,如何保障不会重复操作?业务分析多个客户端有可能同时操作同一组数据,并且该数据一旦被操作修改后,将不适用于继续操作在操作之前锁定要操作的数据,一旦发生变化,终止当前操作解决方案对key添加监视锁,在执行exec前如果key发生了变化,终止事务执行watch key1 [key2..]取消对所有key的监视unw

2020-06-15 11:21:52

redis高级之事务

事务简介超市的收银员在盘账,一天下来收了一些零钱,然后一个一个数,在数的过程中来了一个儿童,这个儿童唱了一首歌:门前大桥下游过一群鸭,快来快来数一数二十六七八。然后这个收银员一脸难色地把数好的钱又放了回去。这里收银员在做连续的动作(数钱)时被打断了,或者被影响到了,那么数钱的结果肯定是不正确的。怎么解决这个问题,我们给她一个安静的环境让她数钱。什么是事务Redis执行指令过程中,多条连续执行的指令被干扰,打断,插队。图片站位Reids事务就是一个命令执行的队列,将一系列预定义命令包装

2020-06-15 10:59:18

redis高级之常见问题解决方案---缓存预热、缓存雪崩、缓存击穿、缓存穿透

缓存预热问题排查请求数据较高 主从之间数据吞吐量较大,数据同步操作频度较高解决方案 前置准备工作日常例行统计数据访问记录,统计访问频度较高的热点数据 利用LRU数据删除策略,构建数据留存队列例如:storm与kafka配合准备工作将统计结果中的数据分类,根据级别,redis优先加载级别较高的热点数据 利用分布式多服务器同时进行数据读取,提速数据加载过程实施:使用脚本程序固定触发数据预热过程 如果条件允许,使用了CDN(内容分发网络),效果会更好总结缓存预热就是系统启动前,

2020-06-09 10:14:05

redis高级之集群---集群

今天我们正式讲解集群相关的一些知识,我们从以下三个方面进行讲解 集群简介 Redis集群结构设计 Cluster集群结构搭建 现状问题业务发展过程中遇到的峰值瓶颈Redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到20万/秒内存单机容量达到256G,当前业务需求内存容量1T使用集群的方式可以快速解决上述问题集群架构集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果集群作用...

2020-06-09 09:52:04

redis高级之集群---哨兵模式

接下来我们就介绍一下哨兵模式,我们会从以下几个方面进行介绍:哨兵简介 启用哨兵模式 哨兵工作原理假如master主机“宕机”了,我们要做的就是把宕机的master干掉,然后从剩余的slave中选出一个master 下图是挑选出新的master 在主master宕机到选择出新的master,中间经历了什么。如下:将宕机的master下线 找一个slave作为master 通知所有的slave连接新的maste...

2020-06-08 09:24:48

redis高级之集群---主从复制(四)---主从复制常见问题

频繁的全量复制(1)伴随着系统的运行,master的数据量会越来越大,一旦master重启,runid将发生变化,会导致全部slave的全量复制操作内部优化调整方案:master内部创建master_replid变量,使用runid相同的策略生成,长度41位,并发送给所有slave 在master关闭时执行命令shutdown save,进行RDB持久化,将runid与offset保存到RDB文件中Repl-id repl-offset 通过redis-check-rdb命令可以查看该信息

2020-06-03 16:14:50

redis高级之集群---主从复制(三)---心跳机制

心跳机制进入命令传播阶段后,master与slave间需要进行信息交换,使用心跳机制进行维护,实现双方连接保持在线 master心跳 指令:PNG 周期:由repl-ping-slave-period决定,默认10秒 作用:判断slave是否在线 查询:INFO replication 获取slave最后一次连接时间间隔,lag项维持在0或1视为正常 slave心跳任务 指令:REPLCONF ACK(offset) 周期:1秒 作用1:汇报slave自己的复制偏移量,.

2020-06-03 16:07:46

redis高级之集群---主从复制(二)---工作流程及名词解释

今天我们就详细讲解一下主从复制的工作流程主从复制工作流程主从复制过程大体可以分为3个阶段建立连接阶段(即准备阶段) 数据同步阶段 命令传播阶段连接图及过程如下图,是slave主动连接master。大部分时间是slave给master发送指令,大致了解了它的工作流程,接下来我们进行详细解说。 阶段一:建立连接阶段建立slave到master的连接,使master能够识别slave,并保存slave端口号建立连接阶段工作流程步骤一:设置maste...

2020-06-03 15:58:11

redis高级之集群---主从复制(一)---简介和作用

今天我们就聊一下redis的高级知识,单台服务已经不能满足我们的需求,面对高并发、服务故障等问题,单台服务很显然力不从心。接下来我们先对主从复制有一个简单的了解,然后讲一下它的作用,为何会有主从复制,它到底解决了什么问题。首先看一下讲解目录什么是主从复制 主从复制的作用 主从复制工作流程 三个阶段 三个核心 心跳机制 4.常见问题主从复制简介主从复制即将master中的数据即时、有效的复制到slave中 特征:一个master可以拥有多个slave,一个s...

2020-06-03 13:53:14

redis使用场景之GEO---应用于地理位置的计算

在我们日常生活中有好多软件都用到了地理位置计算,比如:火热的生活服务类软件微信/陌陌美团/饿了么携程/马蜂窝高德/百度...GEO类型的基本操作添加坐标点geoadd key longitude latitude member [longitude latitude member ...]获取坐标点geopos key member [member ...]计算坐标点距离geodist key membere1 member2 [unit]演示操作如下

2020-05-28 19:22:07

redis使用场景之HyperLogLog---应用于独立信息统计

如果我们统计不重复数据的数量,比如统计独立UV,我们会有如下方案:原始方案:set存储每个用户的id(字符串)改进方案:bitmaps存储每个用户状态(bit)全新的方案:HyperLogLog基数首先我们来认识一下基数{1,3,5,7,5,7,8} 基数集{1,3,5,7,8} 基数:5Hyperloglog类型的基本操作添加数据pfadd key element [element...]统计数据pfcount k...

2020-05-28 18:36:36

redis使用场景之Bitmaps---应用于信息统计状态

今天我们来学习一下bitmaps,bitmaps这个“数据结构”可以实现对位的操作。bitmaps本身不是一种数据结构,实际上就是字符串,但是它可以对字符串的位进行操作。Bitmaps类型的基础操作获取指定key对应偏移量上的bit值getbit key offset设置指定key对应偏移量上的bit值,value只能是1或0setbit key offset value注意:如果偏移量比较大,前面的位都是置0,所以我们可以减去一个公共数Bitmaps类型的扩展操作对指定ke

2020-05-28 09:01:24

redis使用场景之sorted_set(二)---排行榜(计数器组合排序功能对应的排名)

业务场景票选广东十大杰出青年,各类综艺选秀海选投票各类咨询网站top10(电影、歌曲、文档、电商、游戏等)聊天室活跃度统计游戏好友亲密度业务分析为所有参与排名的资源建立排序依据解决方案获取数据对应的索引(排名)zrank key mumberzrevrank key memberscore值获取与修改zscore key memberzincrby key increment member接下来就进行实操一下redis数据库里的展示形.

2020-05-22 09:20:14

redis使用场景之sorted_set(一)

今天我们来认识一种新的数据类型:sorted_set,首先我们对其存储类型有个简单的认识。新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式 需要的存储结构:新的存储模型,可以保存可排序的数据 Sorted_set类型:在set的存储结构基础上添加可排序字段 score为排序的,不是真实的数据添加数据zadd key score1 member1 [score2 member2]获取全部数据zrange key st...

2020-05-22 09:06:42

redis使用场景之set(六)---黑名单与白名单设定的服务控制

业务场景黑名单资讯类信息类网站追求高访问量,但是由于其信息的价值,往往容易被不法分子利用,通过爬虫技术,快速获取信息,个别特种行业网站信息通过爬虫获取分析后,可以转换成商业机密进行出售,例如第三方火车票、机票、酒店刷屏代购软件、电商刷评论、刷好评。同时爬虫带来的伪流量也会给经营者带来错觉,产生错误的决策,有效避免网站被爬虫反复爬去成为每个网站都要考虑的基本问题。在基于技术层面区分出爬虫用户后,需要将此类用户进行有效屏蔽,这就是黑名单的典型应用。Ps:不是说爬虫一定做摧毁性的工作,有些小型网站需

2020-05-22 08:47:27

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。