Redis从菜鸟到超神之路
本文将用最小的篇幅介绍Redis的使用,Redis的高可用以及Redis的源码知识
小山沟里的程序猿
向一个城墙发起冲锋!
展开
-
Redis 深度历险:核心原理与应用实践 全集
1、【Redis核心原理和应用实践】集群 3:众志成城 —— Clusterhttps://blog.csdn.net/shenchaohao12321/article/details/879587632、【Redis核心原理和应用实践】拓展 1:耳听八方 —— Streamhttps://blog.csdn.net/shenchaohao12321/article/details/8...原创 2020-04-05 23:06:49 · 790 阅读 · 0 评论 -
Redis集群高可用性方案-Codis
在大数据高并发场景下,单个 Redis 实例往往会显得捉襟见肘。首先体现在内存上,单 个 Redis 的内存不宜过大,内存太大会导致 rdb 文件过大,进一步导致主从同步时全量同 步时间过长,在实例重启恢复时也会消耗很长的数据加载时间,特别是在云环境下,单个实 例内存往往都是受限的。其次体现在 CPU 的利用率上,单个 Redis 实例只能利用单个核 心,这单个核心要完成海量数据的存取和管理工作压...原创 2020-04-05 12:35:49 · 621 阅读 · 0 评论 -
Redis从菜鸟到大神-Sentinel哨兵模式
一、Redis哨兵方案目前我们讲的 Redis 还只是主从方案,最终一致性。读者们可思考过,如果主节点凌晨 3 点突发宕机怎么办?就坐等运维从床上爬起来,然后手工进行从主切换,再通知所有的程 序把地址统统改一遍重新上线么?毫无疑问,这样的人工运维效率太低,事故发生时估计得 至少 1 个小时才能缓过来。如果是一个大型公司,这样的事故足以上新闻了。所以我们必须有一个高可用方案来抵抗节点故障,当...原创 2020-04-05 10:57:55 · 454 阅读 · 0 评论 -
Redis原理之小对象压缩
Redis 是一个非常耗费内存的数据库,它所有的数据都放在内存里。如果我们不注意节 约使用内存,Redis 就会因为我们的无节制使用出现内存不足而崩溃。Redis 作者为了优化数 据结构的内存占用,也苦心孤诣增加了非常多的优化点,这些优化也是以牺牲代码的可读性 为代价的,但是毫无疑问这是非常值得的,尤其像 Redis 这种数据库。一、32bit vs 64bitRedis 如果使用 32b...原创 2020-04-05 09:57:19 · 571 阅读 · 0 评论 -
Redis从菜鸟到大神-发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送...原创 2020-04-05 00:51:21 · 306 阅读 · 0 评论 -
Redis从菜鸟到大神-事务处理
为了确保连续多个操作的原子性,一个成熟的数据库通常都会有事务支持,Redis也不例外。Redis 的事务使用非常简单,不同于关系数据库,我们无须理解那么多复杂的事务模 型,就可以直接使用。不过也正是因为这种简单性,它的事务模型很不严格,这要求我们不 能像使用关系数据库的事务一样来使用 Redis。一、Redis 事务的基本使用每个事务的操作都有 begin、commit 和 rollbac...原创 2020-04-05 00:22:08 · 381 阅读 · 0 评论 -
Redis管道操作
大多数同学一直以来对 Redis 管道有一个误解,他们以为这是 Redis 服务器提供的一种 特别的技术,有了这种技术就可以加速 Redis 的存取效率。但是实际上 Redis 管道 (Pipeline) 本身并不是 Redis 服务器直接提供的技术,这个技术本质上是由客户端提供的, 跟服务器没有什么直接的关系。下面我们对这块做一个深入探究。一、Redis 的消息交互当我们使用客户端对 R...原创 2020-04-04 23:37:41 · 768 阅读 · 0 评论 -
Redis数据持久化原理
Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制 来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。Redis 的持久化机制有两种,第一种是快照,第二种是 AOF 日志。快照是一次全量备 份,AOF 日志是连续的增量备份。快照是内存数据的二进制序列化形式,在存储上非常紧凑,而 AOF 日志记录的是内存数据修改的指令记录文本。...原创 2020-04-04 22:49:58 · 326 阅读 · 0 评论 -
Redis从菜鸟到大神-通信协议
Redis 的作者认为数据库系统的瓶颈一般不在于网络流量,而是数据库自身内部逻辑处 理上。所以即使 Redis 使用了浪费流量的文本协议,依然可以取得极高的访问性能。Redis 将所有数据都放在内存,用一个单线程对外提供服务,单个节点在跑满一个 CPU 核心的情 况下可以达到了 10w/s 的超高 QPS。一、RESP(Redis Serialization Protocol)RESP 是...原创 2020-04-04 22:01:07 · 378 阅读 · 0 评论 -
Redis为什么这么快,带你了解线程IO模型!
1、Redis是单线程还是多线程?Redis 是个单线程程序。2、Redis为什么这么快?数据都在内存中,内存操作当然比磁盘操作快。3、Redis单线程如何同时处理多个请求?(1) 使用非阻塞IO+IO多路复用技术处理。平常我们自己写的socket程序都是read和write多少个字节返回,接收不够一直阻塞,成为阻塞IO,阻塞的时候线程干不了别的事情。套接字提供一个选项No...原创 2020-04-04 21:09:23 · 385 阅读 · 0 评论 -
你还在用keys命令,你out了—Redis渐进遍历命令scan用法
一、痛点公司最近正式有Memcached过度到Redis, 自己在其中也学到很多。但是最近业务同学有需求,怀疑他们设置的缓存没有设置进去,自己也不太确定,让我们执行下,看看这个key到底存不存在;公司存Redis的key包括系统名+子类型+业务key。问题的关键在于业务key是MD5生成的,具体的MD5依赖参数构造,线下构造不出来,只是知道系统名称。首先想到的是执行:keys 前缀*;我...原创 2019-10-24 16:26:38 · 612 阅读 · 0 评论 -
史上最全Redis高可用技术解决方案大全
史上最全Redis高可用技术解决方案大全 Redis常见的几种主要使用方式:Redis 单副本Redis 多副本(主从)Redis Sentinel(哨兵)Redis ClusterRedis 自研 1、Redis单副本Redis 单副本,采用单个Redis节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适...转载 2019-07-01 18:38:53 · 407 阅读 · 0 评论 -
从Memcache转战Redis,聊聊缓存使用填过的“坑”
文章来源:51CTO 原文链接:http://developer.51cto.com/art/201807/579238.htm 在高并发场景下,很多人都把 Cache(高速缓冲存储器)当做可以“续命”的灵丹妙药,哪里高并发压力大,哪里就上传 Cache 来解决并发问题。但有时候,即使使用了 Cache,却发现系统依然卡顿宕机,是因为 Cache 技术不好吗?非也,其实这是缓存的治理...原创 2019-04-29 19:19:06 · 480 阅读 · 0 评论 -
Redis高级数据结构GEO用法
需求怎么实现一个“附件的人”或者附近的“商店”功能?需求分析可以基于数据库去做,给定一个坐标,以这个坐标为半径r, j使用sql选出近似圆的的元素进行展示。select id from positions where x > x0-r and x < x0+r and y < y0+r and y> y0-r但是如果访问量非常大,那数据库就无能为力,幸好Redi...原创 2019-04-22 13:21:31 · 1708 阅读 · 0 评论 -
Redis如何实现限流算法
本文将介绍如何利用Redis实现限流算法,希望您有所收获。原创 2019-04-21 23:28:37 · 2203 阅读 · 0 评论 -
Redis高级数据结构HyperLogLog原理详解和应用场景
本文将介绍Redis的数据结构HyperLogLog原理和应用场景。Redis高级数据结构HyperLogLogHyperLogLog类似set的使用方法,可以接受元素添加,并给出key包含的唯一元素的近似数量。为什么说是近似数量,这和其实现有关系,先看完api再看实现原理和应用场景。> PFADD key element [element … //将任意数量的元素添加到指定的 Hy...原创 2019-04-17 20:49:13 · 4113 阅读 · 0 评论 -
Redis如何实现布隆过滤器
本文将介绍Redis的数据结构HyperLogLog以及如何实现布隆过滤器。原创 2019-04-18 10:11:07 · 6018 阅读 · 0 评论 -
Redis面试: 如何实现位操作及典型应用
通过阅读本篇文章,将为您解决以下四个疑问。原创 2019-04-15 22:11:52 · 604 阅读 · 0 评论 -
Redis如何实现消息队列
Redis 利用 其 专有的数据结构list可以实现简单的消息队列和异步发送的需求,当然可专业的mq相比,在消息投递的可靠性和及时性上还是有差距,如果对异步发送要求比较高,则建议还是采用专业的mq中间件。原创 2019-04-14 12:55:21 · 5636 阅读 · 1 评论 -
Redis实现分布式锁的正确姿势
在服务端的开发中,经常会遇到并发问题,并发问题大家能想到的就是并行变串行,锁就是一种并行变串行的方式,redis就可以利用其单线程的特性实现分布式锁。原创 2019-04-12 13:34:51 · 313 阅读 · 0 评论 -
初识Redis—常用命令操作
Redis能做什么?Redis是一种缓存型数据库,数据完全存储在内存中,存取速度非常快,qps据说可以达到10w/s。原创 2019-04-09 23:12:20 · 1002 阅读 · 0 评论 -
Redis开发规范(基于阿里云Redis开发规范)
Redis键值规范1、键设计易识别和管理遵从 业务名称:子业务名称:应用场景:自定义部分例如:key = “aliyun:forum:cache:comments:64529021”;2、简洁性在保证语义的前提下,控制key的长度,在大数据量场景下,key的内存占用不可小视。3、不要包含特殊字符包含空格、换行、单双引号以及其他转义字符4、控制bigvalue, 防止网卡流量、慢查询...原创 2019-04-10 09:43:27 · 726 阅读 · 0 评论