Redis 的通信协议 RESP

Redis 作者认为数据库系统瓶颈不在网络流量, 而在数据库自身逻辑处理上, 所以使用了浪费流量的文本协议, 来换取即可的访问性能RESPRESP (Redis Serialization Protocol) 是一种直观的文本协议, 优势是过程简单, 解析极好, 劣势是耗费流量RESP 将传输的结构数据分为 5 种最小单元类型, 单元结束时统一加上回车换行符 \r\n单行字符串以 + 符号开...阅读全文...

Redis 的优胜劣汰 LRU 算法

本章主要介绍:redis 内存满了以后会怎样 ?redis 的近似 LRU 算法和严格 LRU 算法有什么区别 ?Redis 的五种最大内存时的释放策略场景当 redis 内存超出物理内存限制时, 会频繁和硬盘交换(swap), 极大影响性能redis 可配置 maxmemory 参数来限制内存超出期望大小当实际内存超出 maxmemory 时, redis 提供了五种策略来让用户自己觉得如...阅读全文...

Redis 过期策略

Redis 主要是惰性策略和定时删除两种策略结合, 来清理过期 key.惰性策略客户端访问 Key 时, 先进行过期判断, 如果已经过期立即删除.定时删除Redis 将设置了过期时间的 key 放在一个独立的字典中没 10s 扫描一次此字典, 随机取 20 个 key删除这 20 个 key 中的已经过期 key如果已经过期的 key 占比超过 1/4, 则重复步骤 2-4问题一: 某一个时...阅读全文...

Redis 事务

Redis 的事务不同于关系型数据库, 事务模型很不严格, 我们对比着 MySQL 来看基本用法命令分为:multi 事务的开始 (类似 MySQL 的 begin)exec 执行事务 (类似 MySQL 的 commit)discard 丢弃事务不执行 (类似 MySQL 的 rollback)// exec 127.0.0.1:6379> get jw (nil) 127.0.0....阅读全文...

Redis 持久化原理

概述Redis 是个内存数据库, 数据全部存储在内存中, 如果突然宕机, 数据就会全部丢失, 因此有了将数据刷到硬盘保存的持久化机制. Redis 持久化分两种方式, 一种是 RDB 快照, 另一种是 AOF 日志.快照就是全量备份, 内存数据的二进制序列化形式, 在存储上非常紧凑. AOF 日志是连续的增量备份, 记录的是内存数据修改的指令记录文本.快照由于 Redis 是单线程程序, 还...阅读全文...

HTTP/2 - 安装部署

本文讲述如何部署 HTTPS 和 HTTP2, 后续会再整理其他相关理论, 如 HTTP/2 的好处, HTTP/2 与 HTTPS 的关系, 从 HTTP/1.1 升级到 HTTP/2 有什么要注意的, HTTP/2 为什么不叫 HTTP/2.0环境Ubuntu 16.04, nginx 1.12.2(安装时需要 ssl 和 http_v2 模块)获取 SSL 证书获取证书有多种方式, 购...阅读全文...

Elasticsearch 添加权限管理

Elasticsearch 默认是没有权限管理的, 只要能 ping 通地址的地方就可以读写数据, 所以还是很危险的, 这里选择使用插件 shield 来实现环境版本Elasticsearch 2.4.4插件安装# 这是收费插件, 安装后免费使用一个月, 到期后集群功能不能用,但基本api不受影响 bin/plugin install license bin/plugin install ...阅读全文...

Kafka 迁移 Topics

Kafka 扩展为集群后, 需要把原单机上的部分大 topic 平衡到新 broker 上旧 kafka 的 broker id 为 0, 新机器的是 1迁移第一步创建 move.json{ "topics": [{ "topic": "test2" }], "version&quo...阅读全文...

Kafka和Zookeeper单机扩展为集群的笔记(内附一个小问题的解决)

kafka版本 kafka_2.11-0.10.1.0我用的 zookeeper 是 kafka 自带的旧机器ip: x.x.x.x 新机器 y.y.y.y起因之前 kafka 一直是单机跑, 由于容量需要扩容, 所以新增一台机器将 zookeeper 和 kafka 都扩展为集群文章最后附 ansible 的安装脚本Zookeeper旧机器的编号是 0, 新机器编号 1, 主要修改下配置就...阅读全文...

删除kafka的consumer和topics

谨慎操作kafka 版本 0.10删除 consumers原因: 重置 offset, 或者是强迫症想清空不用的 consumer操作:# 进入控制台 bin/zookeeper-shell.sh localhost:2181 # 查看所有消费者 ls /consumers # fuck rmr /consumers/hangou # 再查看 没了 ls /consumers删除 topic...阅读全文...