redis分布式

Redis-主从同步及哨兵模式

假如想象 提交于 2020-01-10 07:23:06
1、Redis 主从同步 Redis主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave 也会执行相同的操作确保数据一致。同时slave上还可以开启二级slave、三级slave从库,和MySQL的主从类似。 Redis主从配置非常简单,只需要在Redis从库配置中指定slaveof ip port 即可,IP表示指定主库的ip,port表示redis监听端口。 准备机器两台 master:10.0.0.147 slave:10.0.0.149 1.1 配置主从同步 1.1.1 主库配置 # 修改配置文件 bind 0.0.0.0 #以守护进程在后台运行 daemonize yes #可选设置认证密码,从库需要指定master的密码才能完成同步 requirepass "123456" 1.1.2 从库配置 # 修改配置文件设置 bind 0.0.0.0 # 指定主库 slaveof 10.0.0.147 6379 或者 REPLICAOF 10.0.0.147 6379 #指定master的认证密码(如果远程服务器设置了密码,则需要认证密码) masterauth "123456" 也可在命令行设置,设置完直接生效但重启服务则失效 # 指定主库 slaveof 10.0.0.147 6379 或者 REPLICAOF 10

SpringBoot基础架构篇3(Redis)

纵然是瞬间 提交于 2020-01-10 05:21:17
show me the code and talk to me,做的出来更要说的明白 我是布尔bl,你的支持是我分享的动力! 1 引入 数据库 达到瓶颈,有什么解决方法。 Redis 可以很好解决这个问题。那让我们来学习如何在 SpringBoot 使用 Redis。 2 确保 redis 开启 安装步骤省略。。。具体可以参考网上教程。 2.1 测试 telnet IP地址 端口(默认6379) 2.2 开启方法 如果上面方法没有返回,需要手动开启 找到 redis.conf 文件,配置允许访问的ip find / -name redis.conf 打开 redis.conf 找到 bind 127.0.0.1 改为 #bind 127.0.0.1 找到 protected-mode yes 改为 protected-mode no(redis3.2版本以后) 找到daemonize yes 改为 daemonize no 3.保存退出 :wq 4 . 设置本地防火墙 如果有防火墙: iptables(Linux上常用的防火墙软件) iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT service iptables save #保存iptables规则 5 . 阿里云云主机

redis内置集群通信机制

廉价感情. 提交于 2020-01-10 03:56:17
你能聊聊redis cluster集群模式的原理吗? 1、面试题redis集群模式的工作原理能说一下么?在集群模式下,redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗? 2、面试官心理分析 在以前,如果前几年的时候,一般来说,redis如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有。有一些redis中间件,你读写redis中间件,redis中间件负责将你的数据分布式存储在多台机器上的redis实例中。这两年,redis不断在发展,redis也不断的有新的版本,redis cluster,redis集群模式,你可以做到在多台机器上,部署多个redis实例,每个实例存储一部分的数据,同时每个redis实例可以挂redis从实例,自动确保说,如果redis主实例挂了,会自动切换到redis从实例顶上来。现在redis的新版本,大家都是用redis cluster的,也就是redis原生支持的redis集群模式,那么面试官肯定会就redis cluster对你来个几连炮。要是你没用过redis cluster,正常,以前很多人用codis之类的客户端来支持集群,但是起码你得研究一下redis cluster吧。 redis如何在保持读写分离+高可用的架构下,还能横向扩容支持1T+的海量数据

Redis

ε祈祈猫儿з 提交于 2020-01-09 22:31:56
11、redis(Master-Replicaset) ***** 11.1 原理: 副本库通过slaveof 10.0.0.51 6379命令,连接主库,并发送SYNC给主库 主库收到SYNC,会立即触发BGSAVE,后台保存RDB,发送给副本库 副本库接收后会应用RDB快照 主库会陆续将中间产生的新的操作,保存并发送给副本库 到此,我们主复制集就正常工作了 再此以后,主库只要发生新的操作,都会以命令传播的形式自动发送给副本库. 所有复制相关信息,从info信息中都可以查到.即使重启任何节点,他的主从关系依然都在. 如果发生主从关系断开时,从库数据没有任何损坏,在下次重连之后,从库发送PSYNC给主库 主库只会将从库缺失部分的数据同步给从库应用,达到快速恢复主从的目的 11.2 主从数据一致性保证 min-slaves-to-write 1 min-slaves-max-lag 3 11.3 主库是否要开启持久化? 如果不开有可能,主库重启操作,造成所有主从数据丢失! 主从复制实现 1、环境: 准备两个或两个以上redis实例 mkdir /data/638{0..2} 配置文件示例: cat >> /data/6380/redis.conf <<EOF port 6380 daemonize yes pidfile /data/6380/redis.pid loglevel

运维之道 | Redis

别来无恙 提交于 2020-01-09 15:24:15
Redis 一、Redis 特性 速度极快 :官方给出的数据是 10 万次 ops 的读写,这主要归功于这些数据都存在于内存中。由于 Redis 是开源的,当你打开源代码,就会发现 Redis 都是用 C 语言写的,C 语言是最接近计算机语言的代码,而且只有区区 5 万行,保证了 Redis 的速度。同时一个 Redis 只是一个单线程,其真正的原因还是因为单线程在内存中是效率最高的。 持久化 :Redis 的持久化可以保证将内存中的数据每隔一段时间就保存于磁盘中,重启的时候会再次加载到内存。持久化方式是 RDB 和 AOF。 支持多种数据结构 :分别支持哈希、集合、BitMaps,还有位图(多用于活跃用户数等统计)、HyperLogLog(超小内存唯一值计数,由于只有 12K,是有一定误差范围的)、GEO(地理信息定位)。 支持多种编程语言 :支持 Java、PHP、Python、Ruby、Lua、Node.js。 功能丰富 :如发布订阅、Lua 脚本、事务、Pipeline(管道,即当指令到达一定数量后,客户端才会执行)。 简单 :不依赖外部库、单线程、只有 23000 行 Code。 主从复制 :主节点的数据做副本,这是做高可用的基石。 高可用和分布式 :Redis-Sentinel(v2.8)支持高可用,Redis-Cluster(v3.0)支持分布式。 二

分布式缓存之Redis

和自甴很熟 提交于 2020-01-08 15:49:12
缓存大致可以分为两类,一种是应用内缓存,比如Map(简单的数据结构),以及EH Cache(Java第三方库),另一种 就是缓存组件,比如Memached,Redis;Redis(remote dictionary server)是一个基于KEY-VALUE的高性能的 存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求 存储结构 大家一定对字典类型的数据结构非常熟悉,比如map ,通过key value的方式存储的结构。 redis的全称是remote dictionary server(远程字典服务器),它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。数 据结构如下 启动停止redis Redis有哪些可执行文件 Redis-server Redis服务器 Redis-cli Redis命令行客户端 Redis-benchmark          Redis性能测试工具 Redis-check-aof Aof文件修复工具 Redis-check-dump Rdb文件检查工具 Redis-sentinel Sentinel服务器(2.8以后) 常用的命令是redis-server和redis-cli \1.直接启动 redis-server ../redis.conf 服务器启动后默认使用的是6379的端口,通过--port可以自定义端口;

redis和ehcache的区别,存储方式(各属于内存还是外存)

混江龙づ霸主 提交于 2020-01-08 08:30:01
ehcache属于内存存储,redis的缓存属于内存存储,redis的持久文件属于外存存储; redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案; 如果是单个应用或者对缓存访问要求很高的应用,用ehcache。如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。 来源: https://www.cnblogs.com/smallVampire/p/12000803.html

Redis(1)

主宰稳场 提交于 2020-01-07 12:39:19
目录 Redis 1、基本概念 基本概念 面试点 memcache&redis 2、基本操作 安装&启动&基本配置 安全配置 在线配置 3、持久化 RDB AOF 区别 我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。 个人博客: 传送阵 笔者微信: zhanghe15069028807 ,非诚勿扰。 Redis 1、基本概念 基本概念 Redis是一款用于缓存的nosql数据库,用C语言写的,性能放在第一位,稳定安全放在第二位,这是与关系型数据库有区别的地方。与redis同类型的产品有memcache,这两个产品各有优缺点,我们后面会有分析。 Redis的运行比较依赖内存,通常我们在运行Redis的服务器上安装大内存,而且是集群的方式运行,一台服务器可以运行多个Redis实例,配置起来也比较简单。 下面我们使用Redis的3.2.12版本来演示,官网地址:www.redis.io 具体下载地址 下载地址 。 面试点 持久化 数据类型 缓存穿透 memcache&redis memcache是一款比较极端的软件,追求极速,安全性和扩展性都不是太好,而且只支持键值对。 redis支持多种数据类型,持久化,自带高可用。 tair是二次开发的memcache,淘宝的缓存应用,单机跑没有优势,分布式性能非常好

redis集群(Sentinel)

会有一股神秘感。 提交于 2020-01-07 04:13:26
问题 Redis 主哨兵模式是如何保证高可用的 主要依赖主哨兵的发现故障和故障转移 概述 本文假设读者对redis 的主从复制已经进行了了解 。 Redis 主哨兵集群为Redis 提供了 高可用 ,即高可用是猪哨兵模式的主要目的,这是宏观上Sentinel功能的完整列表 Monitoring :监视实例的情况 Notification : 通知 Automatic failover : 当Master异常下线后,自动会通过选举 Configuration provider : 提供配置信息。 注意事项 在配置哨兵模式下几件事需要注意 : 至少保证3台实例 由于Redis使用异步复制,因此Sentinel + Redis分布式系统不能保证在故障期间保留已确认的写入。 开启 Sentinel后,客户端也需要支持 Sentinel 模式 工作流程 分布式服务器布局 主哨兵的可以是如下布局 这是最简单的布局,Sentinel 依附在实例中,当实例 down 的话,那么 Sentinel 自然也会 down 掉,而图中的 quorum = 2 是什么意思呢,在后面章节再解释。二这种布局会出现分布式服务器“脑裂”问题,如下图 此时可以看到一台 replcation 成为了新的 master,而假如此刻客户端对 redis 进行写入那么数据将会丢失, redis.conf 中的两个参数可以设置

分布式缓存学习笔记(一)

做~自己de王妃 提交于 2020-01-06 17:26:04
一、Redis介绍 一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。可以满足很多应用场景。还提供了键过期,发布订阅,事务,流水线等附加功能 二、Redis使用场景 存储缓存、投票、会话session、排行榜、计数器、发布订阅、消息队列等 三、快速开始 下载 $ wget http://download.redis.io/releases/redis-5.0.5.tar.gz 解压 $ tar xzf redis-5.0.5.tar.gz 编译 $ cd redis-5.0.5 $ make 文件 说明 redis-server 启动redis redis-cli redis命令行客户端 redis-benchmark 测试工具 redis-check-aof AOF持久化工具 redis-check-dump DB持久化工具 redis-sentinel 哨兵相关 redis-trib Redis cluster模式管理工具 redis.conf Redis的配置文件 缺点:单进程单线程(不足)命令慢 堵塞