redis的那些事

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

持久化 

redis支持RDBAOF两种持久化方式

 

The RDB persistence performs point-in-time snapshots of your dataset at specified intervals.

RDB是一种即时快照的存储方式,定时对数据库进行snapshot

RDB优点:

1 RDB对于数据备份非常容易。你可以设置1天或者30天对数据进行一次备份,这样当发生数据灾难的时候能很容易恢复

由于RDB对数据备份时redis只做备份操作,所以备份最大化的使用了redis的性能,同时也导致了对于大的数据集,RDB备份快于AOF

 

RDB缺点:

如果你的需求只是要知道两个时间段中redis的变化,RDB是弱于AOF

由于RDB经常使用子进程fork()进行数据备份,所以如果当数据比较大的时候,数据备份会比较耗时

 

AOF优点:

你必须有一个AOFfsync的策略:

或者是不进行fsync 或者每秒fsync一次,或者每次query查询的时候fsync

2 AOF只记录修改log,当存储的时候由于某种原因写log失误了,使用redis-check-aof能很好的修复

redis数据太大的时候,AOF可以很好被重写到新的redis

 

AOF缺点:

1 AOF通常比RDB

2 AOFRDB

 

 --------------------------

流水线

 

redis是客户端和服务器端的通信交互TCP协议

 

当客户端发送请求,服务器端接受请求并发送回复,客户端接收回复,这个过程叫做RTT(Round Trip Time)

比如如果RTT时间是250微秒,既是服务器端每秒能处理10万个请求,那么,我们只能认为redis每秒处理4个请求

 

server不需要等待client接收了消息之后再处理新request的技术叫做pipelining(流水线)。这个技术早在几十年前就应用在了各种协议上(比如pop3),redis也很早使用了这个技术。

 

实验:

$ (echo -en "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379

当调用这个例子的时候:

server一次返回:

+PONG

+PONG

+PONG

 

而不是返回一次PONG,过了RTT时间再返回PONG,这个例子就说明了redis使用pipelining

 

注:nc命令说明请看:

http://www.cnblogs.com/faraway/archive/2008/08/30/1280070.html 

 

---------------------------------

订阅 

 

 redis支持订阅(subscribe

当一个client订阅一个或多个变量,其他客户端修改了变量并publish之后,这个客户端会收到消息

 

例子:

Client1:

SUBSCRIBE first second

 

Client2:

PUBLISH second Hello

 

client1显示:

message

second

Hello2

 

 

redis还支持模式订阅(psubscribe命令)

PSUBSCRIBE f*

 




本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/archive/2012/02/21/2361747.html,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
16天前
|
NoSQL Redis
redis红锁
在Redis集群中,若请求分布式锁成功后Master宕机且Slave未同步此锁,会导致锁被多次获取。为解决此问题,可对集群每个节点加锁,当大多数节点(N/2+1)加锁成功时,视为获取锁成功。尽管Redisson实现了红锁,但其无法确保每个锁分布在不同Master上,因此建议直接使用Redisson的普通锁。
29 5
|
6月前
|
SQL NoSQL Redis
|
7月前
|
存储 消息中间件 NoSQL
|
存储 NoSQL 算法
|
NoSQL 安全 Redis
|
消息中间件 缓存 NoSQL
### 1.2 使用Redis能做什么
### 1.2 使用Redis能做什么
47 0
|
监控 NoSQL Java
|
消息中间件 NoSQL 测试技术
Redis2
Redis2
129 0
|
NoSQL 安全 Unix
Redis (必看)
Redis 学习点滴 知识分享
89 0
|
存储 NoSQL Redis
什么是Redis?
什么是Redis?
125 2
什么是Redis?
下一篇
DataWorks