Redis
似水流年1990
这个作者很懒,什么都没留下…
展开
-
Redis主从同步机制详解
读写分离在redis主从架构中,Master节点负责处理写请求,Slave节点只处理读请求。对于写请求少,读请求多的场景,例如电商详情页,通过这种读写分离的操作可以大幅提高并发量,通过增加redis从节点的数量可以使得redis的QPS达到10W+主从同步:Master节点接收到写请求并处理后,需要告知Slave节点数据发生了改变,保持主从节点数据一致的行为称为主从同步。主从同步的方法(...转载 2019-10-23 14:00:52 · 1307 阅读 · 1 评论 -
Redis的高并发和快速原因
Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。下面重点介绍单线...转载 2019-06-17 19:55:38 · 569 阅读 · 0 评论 -
redis的持久化(即如何保证断电数据不丢失)
Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB(Redis DataBase),另一种是AOF(Append Only File).RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redi...转载 2019-06-18 09:41:38 · 7332 阅读 · 0 评论 -
Redis 常用数据类型及命令
StringString是最常用的一种数据类型,普通的key/value存储都可以归为此类,如get set 命令操作如set命令格式 set key value:set test:key-value nameHash(哈希)Redis hash 是一个 string 类型的 field 和 value 的映射表如hset命令格式hset key field value (用于为哈...原创 2019-10-10 12:07:27 · 188 阅读 · 0 评论 -
Redis的原子性与事务
原子性:Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,通过MULTI和EXEC指令包起来。事务:单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致...原创 2019-10-10 17:29:47 · 671 阅读 · 0 评论 -
redis客户端与服务端交互过程
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务客户端:当一个连接建立后(1)客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应;(2)服务端处理命令,并将结果返回给客户端。服务端:(1)首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型;(2)然后为这个 socke...原创 2019-10-10 18:31:36 · 501 阅读 · 0 评论 -
Redis 连接池实现思想及优点
实现思想:连接池一般采用多线程+多Redis连接(连接池)方法如:服务端开启4个线程,并为同一个IP PORT 数据库的某个DBIndex 密码 开启4个连接;每个连接与线程ID对应起来,这样每个线程用自己对应的Redis连接,由此一个服务器的某个功能会同时使用多线程中的多个Redis连接,当在一个线程中要访问Redis时,根据线程ID得到对应的Redis连接进行访问,由此便能提升其性能...原创 2019-10-10 19:48:20 · 1765 阅读 · 0 评论