Redis 知识整理
1. 什么是Redis
Redis是开源的、基于内存的键值对数据库。
2. Redis 的基本操作
set key value => mset, setbit, hset
get key => mget(multiple), getbit, hget(hash), hmgetall
del key
exists, type, keys 匹配, incr, decr, append, strlen, lpush, lpop, rpop, rpush, Irang
3. Redis 的 sentinel 上投票选举问题
介绍:sentinel 模式主要为 Redis 提供了主从技术支持。
Redis 提供 sentinel 是一个独立的进程,通过向多个 Redis 服务器发送命令而监控多个运行中的 Redis 实例(周期性发送PING),每个实例返回运行状态,如果检测到 master 泵机,将 slave 切换成 master,再通过发布订阅模式通知其他从服务器切换主机(修改配置文件)。
除此之外,Redis 还可以使用多哨兵模式进行监控,各个哨兵之间还会进行监控。哨兵进程使用流言协议接收 master 是否下线的信息,并使用投票协议来决定是否执行故障迁移以及选用哪个服务器作为主服务器。
故障切换(failover)是当单一哨兵检测到 master 泵机,发生主观下线。第一个哨兵发现后会向其他哨兵间歇性发送 “is master down by addr <ip><port>”获取响应信息,如果发现的哨兵到达一定数量(quorum预设值),即到达一致,进行failover操作,切换成功后会发生订阅模式,各个邵明把自己监控的从服务器切换主机,发生客观下线
Failover:failover前等待0-5秒让其他哨兵实例准备。查找slave,选一个状态良好,权重最低的slave为master。该slave提升为master后,等待其他哨兵提升,都成功后,对slave配置文件进行修改,告知slave跟随新的master,一个一个同步。
Leader 选举:master的选举以及slave的重配置和同步中涉及到重选 leader作为调度,通过更改配置文件中的参数实现配置,在“can-failover”的哨兵中按照runid字典顺序排序,选举最小的哨兵作为leader。
4. Redis 单线程结构优缺点?
优势:避免线程切换产生切换CPU的时间;避免锁的开销。
缺点:无法发挥多核CPU的性能;
redis 使用 io 复用的 Epoll 和输入缓冲区把命令按照队列先进先出,让单线程高效处理多个请求。
5. Redis 的缺点导致那些命令在Redis上不可用?
Keys、hgetall、scan等
6. Redis vs Memcached
速度快,支持数据类型多,可以持久化数据。
7. Redis集群方案
1. 代理twemproxy & codis:一致性hash算法转接redis
2. 自带集群:hash槽,16384个哈希槽,每个key通过CRC16校验后 mod 16394来决定放哪个槽。主从复制,异步,不能保证强一致性
也可以在自己的业务逻辑层写=。=
Redis 知识整理的更多相关文章
- Redis知识整理
Redis知识整理 转自:https://www.cnblogs.com/rjzheng/p/9096228.html 1.单线程模型 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返 ...
- Redis 知识 整理
简介 安装 启动 注意事项 使用命令 通用命令 数据结构 字符串(string) 哈希(hash) 队列(list) 集合(set) 有序集合(zset) 位图(bitcount) 事务 订阅与发布 ...
- Redis相关知识整理
Redis相关知识整理 1. Redis和MySQL的区别?a).mysql是关系型数据库,而redis是NOSQL,非关系型数据库.mysql将数据持久化到硬盘,读取数据慢,而redis数据先存储在 ...
- [Redis知识体系] 一文全面总结Redis知识体系
本系列主要对Redis知识体系进行详解.@pdai Redis教程 - Redis知识体系详解 知识体系 学习资料 知识体系 知识体系 相关文章 首先,我们通过学习Redis的概念基础,了解它适用的场 ...
- js事件(Event)知识整理
事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下 鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Kali Linux渗透基础知识整理(二)漏洞扫描
Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...
- wifi基础知识整理
转自 :http://blog.chinaunix.net/uid-9525959-id-3326047.html WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总 ...
- 数据库知识整理<一>
关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...
随机推荐
- Centos7 Lnmp的环境搭建
centos 版本 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 关闭防火墙 sy ...
- python 七段管模块
python 七段管模块 def drawGap(): #绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw): #绘制单段数码管 drawGa ...
- 第01节:ActiveMQ入门和消息中间件
1.ActiveMQ最主要的功能:实现JMS Provider,用来帮助实现高可用.高性能.可伸缩.易用和安全的企业级面向消息服务的系统.是一个异步的功能. 2.ActiveMQ特点: 完全支持JMS ...
- 【js】高阶函数是个什么?
所谓高阶函数,就是函数中可以传入另一个函数作为参数的函数. 简单一张图,方便理解全文. function 高阶函数(函数){} 这是一个高阶函数,f是传入的函数作为参数. 其实高阶函数用的很多.其实平 ...
- ELK学习笔记之ELK搜集OpenStack节点日志
模板来自网络,模板请不要直接复制,先放到notepad++内调整好格式,注意缩进 部署架构 控制节点作为日志服务器,存储所有 OpenStack 及其相关日志.Logstash 部署于所有节点,收集本 ...
- P1450 [HAOI2008]硬币购物(完全背包+容斥)
P1450 [HAOI2008]硬币购物 暴力做法:每次询问跑一遍多重背包. 考虑正解 其实每次跑多重背包都有一部分是被重复算的,浪费了大量时间 考虑先做一遍完全背包 算出$f[i]$表示买价值$i$ ...
- 初涉wheel 组
入门 在一次处理su切换的问的时候出现一个问题, [cheng1@localhost ~]$ su cheng2 密码: su: 鉴定故障 [cheng1@localhost ~]$ 试过很多次, 也 ...
- Android系统应用Mms之短信会话列表加载流程一
1. ConversationList短息会话列表界面 1. 开始进行加载 ConversationList: protected void onStart(){ ... // 进行异步查询 star ...
- FJOI2019 划水记
Day0 月考的余温尚未褪去,一周后期中考也将来临.一群被哄来打FJOI的水军,在期中大考必过前一百的死命令之下,仍然不怕死的花三天时间水同步赛.试机的路上乖乖排成两排,居然还有那么一丝春游的悠闲之感 ...
- 使用tp访问数据库时提示错误: 'PDO' not found, 和not defined constant mysql_attr_init_command 和call an undefined function Think\Template\simpleXml_load_string()函数
第一个问题: PDO not found 是因为 php没有安装pdo扩展, 无法提供给 php 以 数据库访问功能, 所以 报错是在文件: Think/Db.class.php的里面. 解决方法是: ...