Redis
swpu-maniac
这个作者很懒,什么都没留下…
展开
-
CAP原理与传统的ACID
CAP原理与传统的ACID二 ACID1.A(Atomicity) 原子性原子性很好理解就是说事务的所有操作要不全部做完,要不都不做完,事务成功建立在事务的所有操作都进行完成,不会出现执行成功一半的情况,凡是半路出错就会回滚,如A给B转账1000元,步骤是先扣A1000元,再给B加1000元,若不一起完成,就会导致A少了1000元。2.C(Cinsistency) 一致性数...原创 2018-07-27 14:49:32 · 390 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记4-数据库
8 数据库8.1 服务器中的数据库struct redisServer{ //... //一个数组,保存所有数据库 redisDb *db; //服务器数据库数量 int dbnum; //...}Redis服务器将所有数据库都保存在服务器状态redisServer结构的db数组中,db数组中每个项都是一个redisDb结构...原创 2018-09-08 17:37:53 · 182 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记7-事件
11 事件Redis服务器是一个事件驱动程序,服务器会处理以下两类事件文件事件:Redis服务器通过套接字与客服端进行连接通讯,而服务器本身对套接字进行处理,以套接字为中转实现服务器与客服端的交流,而文件事件就是服务器对套接字操作的抽象。服务器与客服端的通信就会产生相应的文件事件,而服务器就是监听并处理这些事件来完成一系列网络通信的。时间事件:Redis服务器中一些操作(serverC...原创 2018-09-16 21:04:56 · 199 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记8-客户端
12 客户端Redis服务器是典型的一对多服务器(一个服务器与多个客服端建立连接),通过使用I/O多路复用技术实现文件事件处理器,Redis使用单线程单进程的方式来处理命令请求,服务器为客户端建立redis.h/redisClient结构,这些结构保存了客户端当前的状态信息,及执行相关功能时需要用到的数据结构。客户端的套接字描述符客户端的名字客户端的标志值指向客户端正在使用的数据库...原创 2018-09-18 12:12:14 · 207 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记5-RDB持久化
.原创 2018-09-13 20:07:27 · 218 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记9-服务器
13 服务器13.1 命令请求的执行流程一个命令请求从发送到获得回复的过程中, 客户端和服务器需要完成一系列操作。举个例子, 如果我们使用客户端执行以下命令:redis> SET KEY VALUEOK那么从客户端发送 SET KEY VALUE 命令到获得回复 OK 期间, 客户端和服务器共需要执行以下操作:客户端向服务器发送命令请求 SET KEY VALUE原创 2018-09-29 14:16:08 · 218 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记6-AOF持久化
10 AOF(Append Only File)10.1 AOF是什么 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录), 只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作10.1.1 Aof保存的是appendonly.a...原创 2018-09-15 13:43:08 · 221 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记10-复制
14 复制在redis中使用slaveof命令,可以使得服务器去复制另一个服务器,成为那个服务器的从服务器,称为主从复制14.1 旧版复制功能旧版复制的实现由两种方式组成同步:通过发送主服务器的rdb文件给从服务器与缓冲区保存后续写命令使得主从服务器状态一致命令传播:主从服务器状态一致后,主服务器发送后续修改数据库的命令给从服务器保证主从服务器状态一致14.1.1 同步当一个服务...原创 2018-10-02 13:33:29 · 182 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记11-Sentinel(哨兵)
15 哨兵哨兵系统由一个或多个哨兵实例组成,可以监视任意多个主服务器及其对应的所有从服务器,并在监视的主服务器下线的时候从其对应的从服务器中选出一个作为新的主服务器,然后让剩余的从服务器去复制新的主服务器,并在旧的主服务器上线以后让其成为新的主服务器的从服务器。15.1 启动并初始化哨兵启动一个 Sentinel 可以使用命令:$ redis-sentinel /path/to/your/...原创 2018-10-03 14:24:51 · 228 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记1-数据结构与对象(字符串,链表,字典,跳跃表)
一 数据结构与对象1.1 简单动态字符串1.2 链表1.3 字典1.4 跳跃表1.5 整数集合1.6 压缩列表1.7 对象原创 2018-09-07 10:51:09 · 386 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记3-数据结构与对象(对象)
二 对象原创 2018-09-08 17:37:25 · 215 阅读 · 0 评论 -
idea+maven(远程连接)使用Jedis
我的情况:我在自己的服务器上开启的redis,然后在本机远程连接redis,开发工具为idea,使用maven来依赖注入。1 创建项目与连接redis创建普通的maven项目依赖注入 <dependencies> <dependency>原创 2018-08-17 17:57:11 · 1365 阅读 · 0 评论 -
Redis持久层
1 RDB(Redis DataBase)1.1 RDB是什么在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高...原创 2018-08-04 11:05:52 · 656 阅读 · 0 评论 -
Redis事务
1 redis的事务简介可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。一个队列中,一次性、顺序性、排他性的执行一系列命令。2 使用2.1 命令multi 标记一个事务块的开始exec 执行事务块内的所有命令discard 取消事务,放弃事务块内所有命令watch key/[key1 ...原创 2018-08-04 17:08:20 · 138 阅读 · 0 评论 -
Redis的发布订阅
1 概念进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。2 指令2.1 可以一次性订阅多个,SUBSCRIBE c1 c2 c32.2 消息发布,PUBLISH c2 hello-redis2.3 订阅多个,通配符*, PSUBSCRIBE new*2.4 收取消息, PUBLISH new1 redis2015代码片://端口1订...原创 2018-08-09 10:03:29 · 130 阅读 · 0 评论 -
Redis基础
redis基础一 redis-server(redis的启动)使用命令redis-server ./redis.conf,选择自己修改过的某个配置文件将redis打开redis 的默认运行方式不是后台运行,如果需要改成后台运行,将redis.conf里的GENERAL中daemonize的后缀为yes,默认是no。# By default Redis does not run...原创 2018-07-31 11:57:34 · 451 阅读 · 0 评论 -
Redis的复制
1 概念Redis的复制也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主2 读写分离2.1 主从的配置2.1.1主从库的配置配从(库)不配主(库)从库配置:slaveof 主库IP 主库端口2.1.2 配置文件的修改基础配置拷贝3个redis.conf文件(...原创 2018-08-10 13:42:20 · 474 阅读 · 0 评论 -
Redis常用五大数据类型
1.String(字符串)string是redis最基本的类型,一个key对应一个valuestring类型是二进制安全的,意思是redis的string可以包含任何数据,如jpg图片或者序列化的对象。string类型是redis最基本的数据类型,一个redis中字符串value最大允许512m2.Hash(哈希,类似java里的map)redis hash是一个键值对集合...原创 2018-08-01 19:48:43 · 344 阅读 · 0 评论 -
Redis常见的配置文件说明
参数说明,redis.conf 配置项说明如下:daemonize no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程。pidfile /var/run/redis.pid 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定。port 6379 指定Redis监听...原创 2018-08-02 11:40:44 · 147 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记2-数据结构与对象(整数集合,压缩列表)
一 数据结构与对象5 整数集合 整数集合是集合键的底层实现之一,当一个集合键只包括整数值元素,且数量不多时,Redis就会使用整数集合做为集合的底层实现5.1 整数集合的实现typedef struct intset{ //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; ...原创 2018-09-08 17:37:19 · 162 阅读 · 0 评论 -
《Redis设计与实现》阅读笔记12-集群
16 集群集群由多个节点(redis服务器)组成。多个节点之间通过握手进行连接,从而构造了集群。CLUSTER MEET <ip> <port>客户端向一个节点发送这条命令,可以使得接收命令的节点与命令中对应ip地址和端口的服务器节点进行握手,使得原创 2018-10-14 15:42:09 · 240 阅读 · 0 评论