设为首页 收藏本站
查看: 1665|回复: 3

[经验分享] 【Redis笔记】 第1篇: redis基本概念简介

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-1-2 09:02:58 | 显示全部楼层 |阅读模式
     [题外话] 忙了几个月,年底终于闲下来了,几个月前在线上生产环境中引入redis,几个月下来运行稳定。趁着空闲,把自己当时的调研内容分享出来,希望可以帮助到更多初学者。 ^_^
        下面开始正文

1. What’s Redis
        Redis作为一个open source key-value store,与传统的k-v存储开源方案相比,其value类型支持各种常见数据类型(如strings, hashes, lists, sets, sorted-sets, etc.),正因如此,其可被用于多种应用场景。
        特别需要明确的是:当需要处理的数据能被内存完全容纳时,Redis才能发挥其优异的性能,即Redis works with an in-memory dataset。
        备注:从v2.0开始到v2.4,Redis支持vitual memory的概念,即当数据集比物理内存大时,会将冷key的value交换到磁盘上,当被请求时,再重新换回主存。不过由于VM机制弊大于利,从redis v2.4之后的版本(不包括2.4)开始,VM特性已被Redis弃用,详细说明可以参考这里。
        Redis支持数据持久化(persistence),以便Redis服务因各种原因重启后,可以load之前已有数据,从而恢复服务状态。用户可根据实际使用情况选择两种持久化策略:
         1) RDB方式:dump内存数据库至磁盘
         2) AOF方式:将每个写操作记录到command log文件中,以便server重启时回放log以恢复数据状态(类似于mysql的binlog)
        Redis支持Master-Slave Replication,从库以全镜像方式同步主库数据,以防系统故障。
        Redis目前还不支持集群,不过支持集群的版本已在作者开发计划中(cluster目前有alpha版本,尚未发布生产环境可用版本)。
        虽无官方的集群实现,但业界主流做法是用Partitioning方式将数据集散列到不同的redis实例上,从而变相实现了对redis集群的支持,redis官网的这里对partitioning的实现思路做了描述并推荐了twitter开源的一个支持redis的proxy - twemproxy(该proxy最初是作为memcached proxy开源的)。
        有两个基本概念需要区分:Redis Master-Slave Replication和Redis Cluster,前者在两个库之间实现数据全镜像,后者则是将用户数据散列到不同机器上,每个机器的Redis节点只hold一部分用户数据。   
        个人感觉,两种方法都可以起到单点故障容错作用,只是实现方式及应用场合不同而已。
        Redis还可以被用作Message Queue,支持的指令集见这里
        关于Redis的更多基础介绍,可直接查看其官网文档。

2. Redis Architecture
        关于redis的架构及实现细节,有很多资料可以参考,这里推荐2篇:
         1) Redis作者antirez关于Redis设计哲学的说明:Redis Manifesto
         2) The architecture of REDIS

3. Redis Performance and Application
        Redis以其高性能闻名(全内存hold数据,典型的"空间换时间"),关于其性能的benchmarks,这里给出2篇资料:
         1) Redis官方发布的性能测试工具及测试结果
         2) TimYang: MemcacheDB/Tokyo Tyrant/Redis性能对比测试
       虽然redis在业界大热,但也非包治百病的万能药。关于Redis的常见应用场合及注意事项,这里推荐2篇资料:
        1) Common Web Use Cases Solved In Redis
        2) TimYang: Redis几个认识误区
       需要说明的问题:
       关于性能,即使假定测试机器配置均相同,Redis的启动配置不同也会对Redis性能指标产生影响(比如持久化策略的配置)。因此各种性能测试结果具有参考意义,但不可以生搬硬套。
       关于应用,不限于本文给出的资料,大家感兴趣的话,可用"redis use case"或"redis application"等key words进行搜索。

4. Redis Installing
       Redis源码无外部依赖,故编译安装非常方便,从官网下载最新稳定版的源码后,解压后make即可。
       编译好的bin文件位于在源码的src目录下,均以redis-xxx命名。其中:
       可执行的2进制文件共有5个:
        a.redis-benchmark    # 性能测试工具
        b.redis-check-aof      # aof文件修复工具
        c.redis-check-dump  # rdb文件修复工具
        d.redis-cli                   # 命令行交互工具
        e.redis-server            # redis server
       conf文件两个:
        a.redis.conf                # redis server的配置文件
        b.sentinel.conf           # redis sentinel配置文件,用于监控

        redis server完成编译后,部署启动实例前,需要对redis.conf中的配置项有较为清楚的理解和合理的配置,否则可能会影响redis的性能或造成数据丢失。限于篇幅,redis的配置说明会在下篇笔记中详细描述。

【参考资料】
1. Redis官网
2. Redis Author - antirez’s Blog [old]
3. Redis Author - antirez’s Blog [new]

============================ EOF ==========================


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-12969-1-1.html 上篇帖子: Redis数据持久化 下篇帖子: 【Redis笔记】 第2篇: redis.conf基本配置项说明

尚未签到

发表于 2014-1-2 10:39:52 | 显示全部楼层
一个男人如果有太多的采集心里,那他就不配有美好的爱情

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-1-2 20:14:54 | 显示全部楼层
虚伪的你,使我过上虚伪的生活。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-1-3 08:01:20 | 显示全部楼层
我落日般的忧伤就像惆怅的飞鸟,惆怅的飞鸟飞成我落日般的忧伤

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表