怎么硬盘化?什么时间触发序列??怎么集群?怎么主从配置??怎么读写分离?使用场景?选择它的优势?
一:资料:
http://blog.nosqlfan.com/html/3537.html
二:快速开始:
下载,解压和安装:$ wget http://redis.googlecode.com/files/redis-2.6.16.tar.gz$ tar xzf redis-2.6.16.tar.gz$ cd redis-2.6.16$ make编译后的可执行文件在src目录中,可以使用下面的命令运行Redis:$ src/redis-server
你可以使用内置的客户端连接Redis:$ src/redis-cliredis> set foo barOKredis> get foo"bar"
客户端例子:(导入 Jedis的客户端.jar )
Jedis jedis = new Jedis("192.168.2.123" , 6379);
// 简单的基本类型操作
jedis.set( "aa", "bb" );
System. out.println(jedis.get("aa" ));
// 针对list的操作命令
jedis.rpush( "afe", "a" );
jedis.rpush( "afe", "b" );
jedis.rpush( "afe", "c" );
List<String> value = jedis.lrange( "afe", 0, 5);
结果如下:
bb[a, b, c]
三:持久化策略:
1). RDB持久化:(默认)该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。2). AOF持久化:(redis.conf中 将 appendonly no 改为 appendonly yes )该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构 建数据库,以保证启动后数据库中的数据是完整的。( 3中同步策略,即每秒同步、每修改同步和不同步 )
appendfsync always #每次有数据修改发生时都会写入AOF文件。appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。appendfsync no #从不同步。高效但是数据不会被持久化。
3). 无持久化:我们可以通过配置的方式禁用Redis服务器的持久化功能,这样我们就可以将Redis视为一个功能加强版的memcached了。4). 同时应用AOF和RDB。
四:主从复制:
如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。将 从服务器重的redis.conf中
# slaveof <masterip> <masterport>
改为
slaveof 127.0.0.1 6379
五:使用场景:
1:排行榜应用,取TOP N操作2:Uniq操作,获取某段时间所有数据排重值3:Pub/Sub构建实时消息系统4:按照用户投票和时间排序。5:构建队列系统6:动态缓存,需要持久化的
六:Redis的优势:
1). 和其他NoSQL产品相比,Redis的易用性极高,因此对于那些有类似产品使用经验的开发者来说,一两天,甚至是几个小时之后就可以利用Redis来搭建自己的平台了。
2). 在解决了很多通用性问题的同时,也为一些个性化问题提供了相关的解决方案,如索引引擎、统计排名、消息队列服务等。
七:目前版本中Redis存在的主要问题:
1). 在官方版本中没有提供Windows平台的支持,已发布的正式版本中只是支持类Unix和MacOSX平台。
2). 没有提供集群的支持,然而据官网所述,预计在2.6版本中会加入该特征。
3). Publication/Subscription功能中,如果master宕机,slave无法自动提升为master。
1). 和其他NoSQL产品相比,Redis的易用性极高,因此对于那些有类似产品使用经验的开发者来说,一两天,甚至是几个小时之后就可以利用Redis来搭建自己的平台了。
2). 在解决了很多通用性问题的同时,也为一些个性化问题提供了相关的解决方案,如索引引擎、统计排名、消息队列服务等。
七:目前版本中Redis存在的主要问题:
1). 在官方版本中没有提供Windows平台的支持,已发布的正式版本中只是支持类Unix和MacOSX平台。
2). 没有提供集群的支持,然而据官网所述,预计在2.6版本中会加入该特征。
3). Publication/Subscription功能中,如果master宕机,slave无法自动提升为master。
八:redis与memcached的比较