首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Redis开发学习笔记---(13)

// Redis开发学习笔记---(13) // 如何高效利用Redis内存 我们知道redis的数据都保存在内存中,如何高效利用内存变得尤为重要。...这里主要从内存消耗、管理内存的原理方法、内存优化技巧三个方面来讲述如何高效实现内存的存储。今天仅描述内存消耗相关知识。...如果该值小于1,这种情况一般出现在操作系统把Redis的内存交换到硬盘导致,这会导致Redis性能变得很差,需要格外注意。...mem_allocator:Redis所使用的内存分配器 redis的内存消耗,主要包含下面4个方面: 自身内存; 对象内存; 缓冲内存; 内存碎片; 其中redis空进程自身占用的内存消耗很少,...当redis由于内存溢出删除键时,可以通过info stats命令来查看evicted_keys指标找出当前redis服务器已经删除的键数量。

51020

Redis开发学习笔记---(18)

// Redis开发学习笔记---(18) // Redis Sentinel实现原理---(二) 前面的文章讲述了redis sentinel实现原理当中的定时任务、主观下线和客观下线,...领导者选举处的sentinel节点负责故障转移,具体步骤如下: 1、在所有的从节点中,选出一个节点作为新的主节点,选择方法如下: a、过滤"不健康"(断线、主观下线)、5s内未回复ping响应、主节点失联超过...让他们成为新主节点的从节点,复制规则和parallel-syncs参数有关 4、sentinel节点集合会将原来的主节点更新为从节点,并保持着对其关注,当其恢复后,命令它去复制新的主节点 sentinel节点...节点配置 redis sentinel节点的配置尽可能一致,这样在判断节点故障时会更加准确;redis sentinel节点支持的命令十分有限,不过所幸sentinel节点不存储数据,如果需要修改配置...redis sentinel高可用读写分离 redis中,从节点一般是作为主节点的后备力量,当主节点出现故障之后,顶替主节点的位置的。

39630

Redis开发学习笔记---(15)

// Redis开发学习笔记---(15) // Redis Sentinel的概念 我们知道Redis主从模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点的地址...介绍sentinel之前,先来了解几个redis的概念, 主节点master:Redis进程,主服务 从节点slave:redis进程,从服务 Redis数据节点:主节点和从节点 Sentinel节点:...监控Redis数据节点,独立的sentinel进程 Sentinel节点集合:若干Sentinel节点的抽象组合,若干sentinel节点进程 Redis Sentinel:Redis高可用实现方案,sentinel...Redis SentinelRedis主从复制模式只是多了若干个sentinel节点,并没有对redis节点做特殊处理,这是很多redis开发人员容易混淆的地方。...@VM_48_10_centos redis]# redis-sentinel redis-sentinel-26380.conf & [1] 7366 [root@VM_48_10_centos redis

48440

Redis开发学习笔记---(11)

Redis开发学习笔记---(11) Redis开发中遇到的问题 之前的文章中,我们讲述了redis的复制机制,通过复制,数据可以被备份,然后这些备份的副本可以用来做读写分离、负载均衡、故障转移等...以上所述为使用Redis做读写分离是存在的成本,Redis本身的性能非常高,开发人员在使用额外的从节点提升读性能之前,尽量在主节点上做充分的优化,提前解决慢查询、持久化阻塞等问题。...3 规避全量复制 我们知道,全量复制是一个非常消耗资源的操作,如何规避全量复制是需要我们关注的点。...1、单主节点复制风暴 单节点复制风暴一般发生在主节点挂载多个从节点的场景,当主节点重启恢复后,从节点会发起全量复制流程,这时主节点就会为从节点创建RDB快照,如果在快照创建完毕之前,有多个从节点都尝试主节点进行全量同步...2、单机器复制风暴 由于redis是单线程架构,通常单台机器会部署对个redis实例,当一台机器上同时部署多台机器时,如果这台机器出现故障或者网络长时间中断,当它恢复后,会有大量从节点针对这台机器上的主节点进行全量复制

40410

Redis开发学习笔记---(14)

// Redis开发学习笔记---(14) // Redis内存优化 我们知道redis的数据都保存在内存中,如何高效利用内存变得尤为重要。...这里主要从内存消耗、管理内存的原理方法、内存优化技巧三个方面来讲述如何高效实现内存的存储。昨天说了内存消耗和内存管理方面的内容,今天主要描述内存优化相关知识。...01 redisobject Redis使用object结构体来保存redis对象, 一个redisobject包含下面几个方面的内容: type:对象类型,包含string,hash,list,...*ptr(数据指针):对象的内容相关,如果是整数,直接存储数据,否则表示指向数据的指针。...如user:frends可简化为u:fs value长度缩减,首先是避免不必要的对象属性等,其次是将业务对象序列化成二进制数组放入redis,或者使用json、xml等将对象作为字符串存储在Redis

33120

Redis开发学习笔记---(5)

// Redis开发学习笔记---(5) // 事务 redis中的事务和MySQL中的事务类似,也是为了保证多条命令组合的原子性,为此,redis提供了简单的事务功能以及集成Lua来解决这个问题...下面我们来看redis的这个功能。...redis提供了键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。...不可以做什么: redis不适合作为大数据量应用的首选数据库,redis的数据是存放在内存中的,如果数据量很大,那么成本将会很高。 redis不适合做那些冷数据较多的应用的首选数据库。...redis中适合放热数据,不适合放冷数据,大量的冷数据存放在内存中,会造成资源的浪费。

41410

Redis开发学习笔记---(2)

Redis的单线程架构 Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务,我们来看Redis的单线程命令处理机制。...为什么单线程的redis还能处理得那么快? 主要原因如下: 1、redis是纯内存访问,它将所有的数据存放在内存中,内存的相应时间大约为100ns,这是redis达到每秒万级别访问的基础。...这样服务端也就没有了锁争用 慢查询分析 要了解redis的慢查询,首先需要知道redis的查询模型: ?...redis的查询模型分为4步: 1、发送命令 2、排队 3、执行命令 4、返回结果 redis的慢查询只统计步骤3的时间。...redis的慢查询是存放在redis的内存列表中的,但是redis并没有暴露这个列表的键,而是通过一组命令来实现对慢查询日志的访问和管理: slowlog get [n] 上面的命令可以返回当前redis

38120

Redis开发学习笔记---(1)

最近准备开始拓宽视野,看看redis的东西,之前就了解过redis的部署方法和5种基本的数据结构,现在准备稍微深入的了解下redis,先写篇文章立个flag,这样以后就用动力写系列文章了。...今天主要看Redis中的数据库管理部分。 redis中的数据是通过key-value的方法存储的,类似C++中的map,我们通过key就可以获取value的值。...select 和MySQL不同,redis中的数据库只是用数字来作为多个数据库的实现,redis默认配置中有16个数据库,每个数据库使用数字来区分。...因此,redis中,如果我们想要实现多个redis数据库,最好的办法是起其他实例,用单机多实例的方法来弥补,这种方法的好处是可以最大程度使用CPU资源,而且使得维和调试功能更加简便。...另外,如果redis的键值数量比较多,flushdb和flushall存在阻塞redis的可能性。

44220

Redis开发学习笔记---(4)

ttl和pttl 这两个命令是查看redis的键剩余过期时间的。...第二:迁移过程是开启了2个客户端的连接,所以dump的结果不是在源redis和目标redis之间进行传输,需要有个中间过程。...它跟dump+restore的方法有3点不同: 第一、整个过程是源自执行的,不需要要在多个redis实例上开启客户端,只需要在源redis上执行migrate命令即可 第二、migrate命令的数据传输直接在源...redis和目标redis上完成的 第三、目标redis完成restore后发送ok给源redis,源redis接受后会根据migrate对应的选项来决定是否在源redis上删除对应的键。...migrate的参数如下: host:目标redis的IP地址 port:目标redis的端口 key|“” :redis3.0.6之前,migrate只支持迁移一个键,当需要迁移多个键,此处字符串为空

40510

Redis开发学习笔记---(12)

// Redis开发学习笔记---(12) // 阻塞 Redis是典型的单线程架构,所有的读写都是在一条主线程中完成的,在高并发场景中,一旦这条主线程出现了阻塞,哪怕是很短的时间,对于应用的影响都是巨大的...其实关于慢查询,之前的文章中讲过一点,给出连接: Redis开发学习笔记---(2) 如何调整慢查询?...redis本身提供发现大对象(大key)的工具,对应命令: redis-cli -h {ip} -p {port} bigkeys [root@VM_48_10_centos ~]# redis-cli...但是这种方法有一个缺点,在进行RDB或者AOF文件重写时,如果做了绑定CPU的操作,则父进程子进程将产生激烈的CPU竞争,极大影响Redis稳定性。因此,对于主节点一般不建议进行CPU绑定。...05 内存交换 swap对于Redis来说是非常致命的,Redis的高性能是建立在内存上的,如果系统把Redis的部分内存交换到硬盘,由于内存硬盘读写速度差好几个数量级,会导致发生交换之后的redis

70120

Redis探险 -《Redis开发》笔记,精华分享。

最近看完了《Redis开发》分享给大家。...全面讲解Redis基本功能及其应用,并结合线上开发监控中的实际使用案例,深入分析并总结了实际开发中遇到的“陷阱”,以及背后的原因, 包含大规模集群开发管理的场景、应用案例开发技巧,为高效开发提供了大量实际经验和建议...本书不要求读者有任何Redis使用经验,对入门进阶DevOps的开发者提供有价值的帮助。...Redis监控云平台CacheCloud。...书中有好多以前没有发现和注意的细节点,而且内容的连贯性,深度等各个点都写的非常的好,书中也会提及很多开发人员对redis认知的盲区,该书能更好的让你做好redis相关的工作,在授之以鱼之时也授之以渔。

62830

redis 学习(20)-- 常见的持久化开发问题

常见的持久化开发问题 fork 操作 fork 操作是一个同步操作,若执行较慢会阻塞 redis 主线程 执行时间内存量相关:内存越大,耗时越长;虚拟机较慢,真机较快 查看 fork 执行时间,...可做监控 info : latest_fork_usec 上一次执行fork的微秒数 改善 fork 优先使用物理机或者高效支持fork操作的虚拟化技术 控制 Redis 实际最大可用内存:maxmemory...transparent_hugepage/enabled Linux 内核的 2.6.38 版本中增加以上配置,支持大的内存页的分配 内存页分配越大,会提高创建副本页的大小,影响性能 硬盘 开销:RDB ...在执行 fsync 的时候,redis 为了保证 AOF 文件安全性,会校验上次 fsync 的时间是否大于2秒。...AOF 阻塞定位 通过Redis日志进行定位。出行这行,即发生阻塞: Asynchronous AOF fsync is taking too long (disk is busy?)

96420
领券