「 中间件 」 十月 21, 2022
zookeeper(二) 安装
文章字数 11k 阅读约需 10 mins.
下载镜像
# 默认拉取最新的版本,如要指定版本 zookeeeper:版本号
docker pull zookeeper
创建并运行容器
docker run --name zookeeper -e JAMFLAGS="-Xmx256m" -v /mysoft/zookeeper/data/:/data/ -d -p 2181:2181 --privileged zookeeper
使用zk客户端创建节点
# 进入容器
docker exec -it acf2ec660c0e...
查看全文
「 中间件 」 十月 21, 2022
zookeeper(三) 协议
文章字数 9.1k 阅读约需 8 mins.
- 先启动node01
- 会建立一个2888的服务端口与3888的选举端口。
- 此时只有一个服务启动,所以没有其他关联。
- 再启动node02
- 同样建立一个2888的服务端口与3888的选举端口。
- 同时查找集群配置,发现能联通node1,并建立socket连接,将随机分配一个端口与node1的3888选举端口映射。
- 然后是node03
- 同样建立一个2888的服务端口与3888的选举端口。
- 查找集群配置,发现能联通node1与node2,并建立两条socket连接,随机分配端口与node1与node2...
「 中间件 」 七月 10, 2022
redis (零) 安装
文章字数 30k 阅读约需 28 mins.
github地址redis-hashes 选择5.0的最新版本.5.0.14
单节点
# 1.下载安装包
wget http://download.redis.io/releases/redis-5.0.14.tar.gz
# 2.解压
tar -zxf redis-5.0.14.tar.gz
# 3.进入文件夹,可以查看readme.md来查看安装步骤与参数设置.
# make本质时读取makefile文件里的命令集,所以可以通过阅读具体的makefile来了解具体的安装...
查看全文
「 中间件 」 七月 10, 2022
redis (一) 概念
文章字数 6.3k 阅读约需 6 mins.
磁盘
- 寻址速度为毫秒ms级别
- 带宽为G/M级别
- 磁盘,磁道,扇区512Byte.
- 操作系统中读多少都是以4K为最小单位.
内存
- 寻址速度为纳秒ns级别.
- 带宽无太多限制
数据库引擎网站
https://db-engines.com/en可以查看排名与使用量.等信息
BIO,NIO知识
BIO
- 创建两个阻塞的socket连接.
- 两个client连接接入,发送了文件描述为fd8与fd9,应用分别开启俩个线程来读取文件描述符,获取状态.
- 当fd8连接的数据还未到达时,线程获取到cpu...
「 中间件 」 七月 10, 2022
redis (二) 配置文件
文章字数 7.2k 阅读约需 7 mins.
# 绑定IP: 指定 redis 只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求
bind 127.0.0.1
# 保护模式: 只允许绑定的IP验证密码后访问.
# 要是配置里没有指定bind或密码, 开启该参数后,redis只会本地进行访问,拒绝外部访问。
# 如果想任意客户端都能访问需要关闭保护模式
protected-mode yes
# 服务端口号
port 6379
# 客户端空闲超时等待时间,0 则为不主动断开连接.
timeout 0
# 是否后台执行
deamonize...
查看全文
「 中间件 」 七月 10, 2022
redis (三) 数据类型即用法
文章字数 29k 阅读约需 27 mins.
- REDIS_ENCODING_INT(long 类型的整数)
- REDIS_ENCODING_EMBSTR embstr (编码的简单动态字符串)
- REDIS_ENCODING_RAW (简单动态字符串)
- REDIS_ENCODING_HT (字典)
- REDIS_ENCODING_LINKEDLIST (双端链表)
- REDIS_ENCODING_ZIPLIST (压缩列表)
- REDIS_ENCODING_INTSET (整数集合)
- REDIS_ENCODING_SKIPLIST (跳跃表和字典)...
「 中间件 」 七月 10, 2022
redis (四) RDB&AOF日志
文章字数 4.3k 阅读约需 4 mins.
Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。但是一旦进程退出,Redis 的数据就会丢失。
为了解决这个问题,Redis 提供了 RDB 和 AOF 两种持久化方案,将内存中的数据保存到磁盘中,避免数据丢失。
把当前 Redis 进程的数据生成时间点快照( point-in-time snapshot ) 保存到存储设备的过程,为redis默认持久化方式.
持久化简单过程
- 调用bgsave命令,父进程接收命令判断是否可持续...
「 中间件 」 七月 10, 2022
redis (五) RDB日志详解
文章字数 27k 阅读约需 25 mins.
本文中的源码来自 Redis 5.0 ,RDB持久化过程的相关源码都在 rdb.c 文件中.
上图表明了三种触发 RDB 持久化的手段之间的整体关系。通过 serverCron 自动触发的 RDB 相当于直接调用了 bgsave 指令的流程进行处理。而 bgsave 的处理流程启动子进程后,调用了 save 指令的处理流程。
serverCron(自动触发持久化逻辑)
redisServer 结构体的 save_params指向拥有三个值的数组,该数组的值与 redis.conf 文件中 save...
查看全文