少点代码,多点头发 本文已经被GitHub收录,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles 入职第一周,我被坑了 最近刚入职新公司,本来想着这刚来新公司,一般都是熟悉熟悉公司同事,看看组内工程文档,找几个demo自己练练手. 咳咳咳,万万没想到啊,一切都是我以为的,我还是太嫩了. 入职那天下午,组长给我丢了几个文档,让我看下这个这些工程的缓存系统问题,让我把redis升级为哨兵模式. 接到任务的我,内心是懵逼的. 第一.…
主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [root@master redis-6.2.1]# yum install gcc -- [root@master lf]# cd redis-6.2.1 #进入解压好的Redis目录,进行编译和安装 [root@master redis-6.2.1]# make -- 之后,我们在Redis目录下创…
为什么要分布式 Redis是一款开源的基于内存的K-V型数据库,因为内存访问速度快,一般被用来做系统的缓存. Redis作为单机部署能够支持业务简单,数据量不大的系统需求,但在实际应用中,一旦系统规模上来,单机的Redis就会遇到下面的挑战: 伸缩性.系统随着长期运行与业务增长,对Redis存储的数据量需求也越来越大,单机必然受限于服务器的内存与磁盘大小. 高性能.系统规模变大后,对Redis的吞吐量需求也会提高,而单机的吞吐量必然有限,这种情况会影响整体系统的性能. 高可用.Redis持久化机…
一.Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去. 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据.所以适合做冷备份. RDB对redis的读写影响非常小,因为redis主进程只需要fork一个子进程进行磁盘IO操作就行了. 相对于AOF来说,恢复较快,因为一个RDB就是数据文件,而AOF存的是指令日志. 缺点: 因为是一段时间才备份,所以容易丢数据. 如果一次写入的文件大,会导致读写服务暂停几毫秒,甚至几秒. 2.A…
集群版本: redis-4.0.14 集群节点: 节点角色 IP redis-master 10.100.8.21 redis-slave1 10.100.8.22 redis-slave2 10.100.8.23 redis-sentinel01 10.100.8.24 redis-sentinel02 10.100.8.25 redis-sentinel03 10.100.8.26 主从部署 全部节点执行: useradd -M -s /sbin/nologin redis; mkdir /…
Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.它支持的数据类型很丰富,如字符串.链表.集合.以及散列等,并且还支持多种排序功能. 什么叫持久化? 用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中. 持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中. XML 数据文件中等等. 也可以从如下两个层面来理解持久化: 应用层:如果关闭( Close )你的应用,然后重新启动则先前的数据依然存在…
Redis是一个基于内存中的数据结构存储系统,可以用作数据库.缓存和消息中间件.Redis支持五种常见对象类型:字符串(String).哈希(Hash).列表(List).集合(Set)以及有序集合(Zset),我们在日常工作中也会经常使用它们.知其然,更要知其所以然,本文将会带你读懂这五种常见对象类型的底层数据结构. 本文主要内容参考自<Redis设计与实现> 对象类型和编码 Redis使用对象来存储键和值的,在Redis中,每个对象都由redisObject结构表示.redisObject…
目录结构如下: 简介 Redis是一个高性能的key-value数据库.Redis对数据的操作都是原子性的. 优缺点 优点: 基于内存操作,内存读写速度快. Redis是单线程的,避免线程切换开销及多线程的竞争问题.单线程是指在处理网络请求(一个或多个redis客户端连接)的时候只有一个线程来处理,redis运行时不止有一个线程,数据持久化或者向slave同步aof时会另起线程. 支持多种数据类型,包括String.Hash.List.Set.ZSet等 支持持久化.Redis支持RDB和AOF…
主从复制 Master-Slave主从概念 同时运行多个redis服务端,其中一个作为主(master),其他的一个或多个作为从(slave),主从之间通过网络进行通讯,slave通过复制master的数据来保持与master的数据同步,实现数据冗余; 在Redis中,配置主从复制非常简单,Redis允许slave实例对master进行完整拷贝,在连接断开时,slave会自动重新连接至主实例,并尽可能与master保持同步; 三个主要机制: 当连接可用时,master将发送命令流到slave来使…
本文引用了“蔷薇Nina”的“Nginx 相关介绍(Nginx是什么?能干嘛?)”一文部分内容,感谢作者的无私分享. 1.引言   Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本.高负载Web服务端代名词. 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP.UDP.WebSocket的负载…