Redis和Redis集群

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
reidis和memcache的比较

参考博客:http://www.cnblogs.com/EE-NovRain/p/3268476.html。

以下是我选出值得考虑是选择reidis还是memcache的区别。至于主从复制memcache也是提供了相应的补丁的。

 1、Redis只使用单核,而Memcached可以使用多核。处理100k以上数据,Memcached能处理更快

 2、key-value这样简单的数据储存,memcache的内存使用率更高。如果采用hash结构,redis的内存使用率会更高。当然,这些都依赖于具体的应用场景。

 3、redis支持持久化,memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。

 4、redis目前官方只支持LINUX 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上。
Redis应用场景

在什么情景Redis有很好的实践呢。redis通常用于系统中方便转为key-value结构,并访问量较多或一下公共特性的属性。实际上关系数据都可以转为key-value,但在应用上应该考虑key的管理问题。

推荐一篇Redis应用场景的描述:http://www.linuxeden.com/html/itnews/20131010/144377.html。

reidis知识点

  sentinel:sentinel是redis到高可用性的解决方案,如果你使用主从结构,为了保证高可用,你需要启动sentinel系统,在主节点挂点时选出新的主节点和做数据迁移。因为非集群下,你到从节点并不会主动变成主节点。
Redis集群部署
方式1:使用Jedis的ShardedJedis做Redis集群

  jedis是ava语言redis客户端,它为redis集群也提供一套来自客户端管理建立集群到方法,如果你使用到是3.0以下到版本,那你就需要以来客户端软件来达到集群到效果。详细请去掉接jedis。浏览器上搜索ShardedJedis就会有很多实例来学习。
方式2:Redis3.0以上版本支持集群设置

  3.0以上版本可以通过redis提供到cluster nodes,cluster meet, cluster addslots等命令建立集群。用原生命令建立集群还是略为繁琐,redis提供里ruby脚本redis-trib.rb帮你建立集群,使用该脚本你需要安装ruby的环境。当然,你也可以自己写一个脚本来建立你到集群。
方式3:豌豆荚开源的集群组件codis

  Codis 是一个分布式 Redis 解决方案,并提供了可视化管理和监控。

  codis是为了解决redis自身集群在运维上遇到里一些问题,包括节点升级及运维监控等。可以从codis作者到文章进行了解:http://www.open-open.com/lib/view/open1436360508098.html。

  这是豌豆夹在github的开源目录:https://github.com/CodisLabs/codis。如果想详细了解codis,里面有一手文档。

posted @ 2016-11-19 16:21  Rainbean  阅读(352)  评论(0编辑  收藏  举报