time : 20181018;
学习一些Redis的高级应用--Redis 命令行redis
1. Redis 发布订阅(pub/sub)是一种消息通讯模式:发送者发送消息,订阅者(sub)接受消息 2. Redis 能够订阅任意数量的频道 3. 咱们建立了订阅频道 : redisChat subscribe redisChat ps : 不要关闭 4. 咱们进行消息的发布 : 从新打开一个redis-cli PUBLISH redisChat "woami"
redis事务是一次能够执行多个命令,而且带有如下两个保证 : 1. 批量操做在执行 EXEC 命令前是放到队列缓存中的 2. 收到 EXEC 命令后,事务开始执行,事务中的任何命令执行失败,其他命令还会执行 3. 在事务执行过程当中,其余客户端提交的请求不会插入到事务执行序列中 一个事务从开始执行须要经历三个阶段 : 1. 开始事务 2. 命令入列 3. 执行事务 实例 : 先以 MULTI 开始一个事务, 而后将多个命令入队到事务中, 最后由 EXEC 命令触发事务, 一并执行事务中的全部命令: redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED redis 127.0.0.1:6379> GET book-name QUEUED redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED redis 127.0.0.1:6379> SMEMBERS tag QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming" 单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增长任何维持原子性的机制,因此 Redis 事务的执行并非原子性的。 事务能够理解为一个打包的批量执行脚本,但批量指令并不是原子化的操做,中间某条指令的失败不会致使前面已作指令的回滚,也不会形成后续的指令不作。
1. redis 数据备份 redis save 命令御用建立当前数据的备份 语法 : SAVE 实例 : SAVE : 该命令将在 redis 安装目录中建立dump.rdb文件 2. redis 数据恢复 若是须要恢复数据,只须要将备份文件(dump.rdb)移动到 redis 安装目录并重启服务便可; 获取 redis 目录可使用 config 命令 config get dir : 获取 redis 目录 3. Bgsave : 建立 redis 备份文件,该命令在后台执行
redis 性能测试是经过同时执行多个命令实现的 语法 : redis-benchmark [option] [option value] 实例 : 同时执行10000个请求 redis-benchmark -n 10000 -q redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q 主机为127.0.0.1,端口号 6379,执行的命令为 set,lpush,请求数为 10000,经过-q 参数让结果只显示每秒执行的请求数
1. Redis 管道技术 redis 是一种基于客户端-服务器模型以及请求/响应协议的TCP服务,这意味着一般状况下一个请求会遵循如下步骤 : 1. 客户端向服务器发送一个查询氢气,并监听Socket返回,一般是以阻塞模式,等待服务器端响应 2. 服务端处理命令,并将结果返回给客户端 redis 管道技术能够在服务端未响应时,客户端能够继续向服务端发送请求,不并最终一次性读取全部服务端的响应 2. 管道技术的优点 : 管道技术最显著的优点是提升了 redis 服务的性能