摘要: 首先说明下redis的虚拟内存与操作系统的虚拟内存不是一码事,但是思路和目的都是相同的。就是暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的内存空间用于其他需要访问的数据。尤其是对于redis这样的内存数据库,内存总是不够用的。 除了可以将数据分割到多个redis server外。另外的能够提高数据库容量的办法就是使用虚拟内存把那些不经常访问的数据交换的磁盘上。如果我们的存储的数据总是有少部分数据被经常访问,大部分数据很少被访问,对于网站来说确实总是只有少量用户经常活跃。当少量数据被经常访问时,使用虚拟内存不但能提高单台redis server数据库的容量,而且也不会对性能造成太多影. 阅读全文
posted @ 2013-05-14 09:22 Efeng 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 在之前的文章中,介绍过Redis数据库高级实用特性中的发布及订阅消息,今天为大家介绍Redis的另一高级实用特性Pipeline批量发送请求。 redis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给client。基本的通信过程如下: Client: INCR X Server: 1 Client: INCR X Server: 2 Client: INCR X Serv... 阅读全文
posted @ 2013-05-14 09:15 Efeng 阅读(382) 评论(0) 推荐(0) 编辑
摘要: Redis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 由于redis是单线程来处理所有client的请求的所以做到这点是很容易的。一般情况下redis在接受到一个client发来的命令后会立即处理并 返回处理结果,但是当一个client在一个连接中发出multi命令有,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一个队列中。当从此连接受到exec命令后,redis会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给client.然后此连接就 结束事务上下文。1 阅读全文
posted @ 2013-05-14 09:13 Efeng 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 安全性设置客户端连接后进行任何其他指定前需要使用的密码。警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。# requirepass foobared requirepass beijing 下面我们做一个实验,说明redis的安全性是如何实现的。我们设置了连接的口令是beijing那么们启动一个客户端试一下:[root@localhostredis-2.2.12]#src/redis-cli redis127.0.0.1:6379>keys* (error)ERRopera 阅读全文
posted @ 2013-05-14 09:12 Efeng 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 在上篇文章中,我们介绍了Redis的高级实用特性中的安全性和主从复制,以及事务控制,在这篇文章中将继续为大家介绍Redis高级实用特性中的持久化机制。 redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式。下面分别介绍: Snapshotting: 快照是默认的持久化方式。这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方... 阅读全文
posted @ 2013-05-14 09:10 Efeng 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 在之前的文章中,介绍过Redis数据库高级实用特性中的持久化机制,今天为大家介绍Redis的另一高级实用特性——发布及订阅消息。 发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub/sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub的server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis server订阅自己感兴趣的消息类型,redis将消息类型称为通道(channel)。当. 阅读全文
posted @ 2013-05-14 09:09 Efeng 阅读(250) 评论(0) 推荐(0) 编辑