Redis
LUAJDC
带你体验随心、随意、随性、随遇而安的生活,体会世间处处存在的美好!
展开
-
redis(3)——redis的对象
redis没有直接使用数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象。1、字符串对象1.1 字符串对象编码int类型 如果一个字符串对象保存的是整数值,并且这个整数值可以用long类型来表示。那么字符串对象会将整数值保存字符串对象结构的ptr属性里面(将void *翻译 2017-10-19 10:00:24 · 237 阅读 · 0 评论 -
redis(1)——Ubuntu下安装redis
redis安装 1、首先需要安装gcc,一般Ubuntu系统都已经提前安装好了sudo apt-get install gcc2、把下载好的redis-3.2.11.tar放到 /usr/local 文件夹下3、进行解压 tar -zxvf redis-3.2.11.tar4、进入到redis-3.2.11目录下,进行编译 make,这个地方需要使用sudo指令,不然会报错原创 2017-10-13 22:12:11 · 1430 阅读 · 0 评论 -
redis(14)——集群的搭建
集群搭建:至少需要三个master第一步:创建以一个文件夹redis-cluster,然后分别在下面创建6个文件夹: (1)mkdir -p /usr/local/redis-cluster (2)mkdir 7001、mkdir7002、mkdir 7003、mkdir 7004、mkdir 7005、mkdir 7006第二步:把之前的redis.conf配置文件分别cop原创 2017-10-20 17:14:22 · 190 阅读 · 0 评论 -
redis(13)——哨兵原理
Sentinel实例(instance)组成的Sentinel系统(system)可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进人下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。一、启动并初始化Sentinel 当一个Sentinel启动时,它需要执行以下翻译 2017-10-20 16:47:14 · 351 阅读 · 0 评论 -
redis(12)——哨兵的配置
哨兵实现步骤:一、在其中一台从服务器配合sentinel.conf文件sentinel monitor mymaster 192.168.16.1306379 1 #名称,主服务器IP,端口,投票选举次数建议为1。sentinel down-after-milliseconds mymaster5000 #设置5000毫秒检测一次,默认1秒sentinel failover-t原创 2017-10-20 15:58:41 · 211 阅读 · 0 评论 -
redis(11)——主从复制的原理
在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器( master ),而对主服务器进行复制的服务器则被称为从服务器( slave ) 2.8版本之前与之后版本的主从复制的功能实现方法不同。主要掌握新版本的复制功能一、新版复制功能的实现 从服务器翻译 2017-10-20 15:04:50 · 238 阅读 · 0 评论 -
redis(10)——主从复制的配置
redis主从复制的配置:clone服务器之后修改slave的IP地址:修改配置文件:/usr/local/redis/etc/redis.conf第一步:slaveof 第二步:masterauth //没有可以做设置使用info查看role角色即可知道是主服务器还是从服务器查看主服务器信息查看从服务器的信息如果网络能够ping的通,从服原创 2017-10-20 14:30:26 · 186 阅读 · 0 评论 -
redis(8)——客户端
一、客户端的数据结构 对于每个与服务器进行连接的客户端,服务器都为这些客户端建立了相应的redis.h/redisClient结构(客户端状态),这个结构保存了客户端当前的状态信息,以及执行相关功能时需要用到的数据结构,其中包括: 客户端的套接字描述符。客户端状态的fd属性记录了客户端正在使用的套接字描述符,根据套接字的不同区分客户端为伪客户端还是普通客户端。翻译 2017-10-20 13:14:01 · 204 阅读 · 0 评论 -
redis(7)——事件
Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。时间事件(time event):Redis服务器中的一些操作(翻译 2017-10-20 13:06:17 · 219 阅读 · 0 评论 -
redis(6)——AOF持久化
与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。一、AOF持久化的实现 AOF持久化功能的实现可以分为命令追加(append)、文件写入、文件同步(sync)三个步骤。1、命令追加 当AOF持久化功能处于打开状态时,服务器在执行完一个写命令之后,会以协议格式将被执翻译 2017-10-19 22:25:56 · 239 阅读 · 0 评论 -
redis(5)——RDB持久化
一、RDB文件的创建和载入1、save和bgsave save命令会阻塞redis服务器进程,直到RDB文件创建完毕为止,在服务器进程阻塞期间,服务器不能处理任何命令请求。 bgsave命令会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程(父进程)继续处理命令请求。 RDB文件的载入工作是在服务器启动时自动执行的,redis并翻译 2017-10-19 21:50:35 · 215 阅读 · 0 评论 -
redis(4)——redia数据库
一、redis数据库1、redis数据库的数据结构2、切换数据库 默认情况下,redis客户端的目标数据库为0号数据库,但客户端可以通过执行select命令来切换目标数据库 在服务器内部,客户端状态redisClient结构的db属性记录了客户端当前的目标数据库,这个属性是一个指向redisDB结构的指针。3、数据库键空间翻译 2017-10-19 22:01:44 · 529 阅读 · 0 评论 -
redis(2)——redis的数据结构
根据书籍《redis设计与实现》总结。一、简单动态字符串在redis数据库里面,包含字符串值的键值对在底层都是由SDS实现的。1、SDS数据结构struct sdshdr { //记录buf数组中已使用的数量 //等于SDS所保存字符串的长度 int len; //记录buf数组中未使用字节的数量 int free原创 2017-10-17 10:29:56 · 218 阅读 · 0 评论