设为首页 收藏本站
查看: 875|回复: 0

[经验分享] Redis的定位

[复制链接]

尚未签到

发表于 2016-12-18 10:52:23 | 显示全部楼层 |阅读模式
首先声明:这篇文章目前只是一个草稿,等以后有时间再来完善,有兴趣的可以继续看下去。

本文采用自创的数据-系统分析法进行分析。

数据-系统分析法简介:
IT系统的本体是数据,即IT系统不过是数据的载体(其实系统是更高级的数据)。
这就好比我们人类社会,有着各种各样的楼房,但这些楼房主要是人居住的容器,人们在不同的建筑之间穿梭,就好比数据在不同的系统中出入

一样。
当然也可以用水和湖海的关系来比喻数据和系统,其中内存和硬盘的关系,就好比云和湖泊的关系。
(题外话:有机体只是DNA制造更多DNA的工具)

本分析法从整体-部分的角度出发,以数据+系统为基础来分析IT系统。
信息是系统的边际效应,结构是关联与互动的复合体。
而数据是信息的载体,系统是数据的载体。
从现象上看,数据和系统是两个对象,但若是从根源上看,两者是一体的,是同一的。
当数据以一种分化与构合的趋势向广阔的时空演化时,承载这些数据的系统,也必须以一种分化与构合的趋势同步跟进。
依据系统学理论,系统是相互关联的对象组成的集合。
系统主要考虑稳定性和整体性,系统的整合程度,决定了系统的稳定性。
整体性可细化为两个方面:一是空间结构性,二是时间连贯性。

分析关键:
数据与系统的关系:由于系统是数据的出入口及数据的容器,因此当数据的状态变化时,系统也会随着数据状态的变化而发生变化。同样,系统

状态的变化,也会影响系统内部数据的状态。当数据或系统的某一属性状态达到极限时(比如数量超过系统容量),就会发生质的变化。
具体变化以及变化方式的示例,可以参考我对水和水杯之间状态变化的描述,可查看我的这篇观察文章:

http://blog.sina.com.cn/s/blog_62728c870101103y.html

因此,对redis的整体分析,应以时代环境为背景,从数据和系统的角度,来分析它们的时空整体性。
关于redis的时代背景、为什么会出现redis以及宏观整体的分析,可参考我前一篇文章:http://igoder.iyunv.com/blog/1969848。
此处将从数据和系统的角度来进行整体-部分的分析。

1,整体分析
数据:
考察数据在空间区域的分布以及时间范围的连续。
数据在redis生命周期内,会使用不同的格式在内存到硬盘之间来回流动着。
内存是动态的不稳定的,因此数据流动性快,但也极易丢失,因此内存数据的来源有两个,一个是客户端的写入,二是硬盘。
从硬盘取数据到内存的情况,是重启系统时从硬盘加载。
硬盘是静态而稳定的,因此数据流动性慢,但能持久保存。
从内存写数据到硬盘有两种方式:快照全量写入;增量写入。

系统:
系统分析可以以数据为基础单位。

2,部分分析


1,数据分析
因为redis跨内存和硬盘,因此分析数据需要同时分析这两块空间的数据。
数据空间:内存+虚拟内存+硬盘
数据时间:内存:数据会过期;硬盘:分为两种,1是一次全量数据时间(可参考快照存储策略),2是增量数据时间
数据结构:内存:键值对;硬盘:二进制
数据类型:内存:字符串,列表,集合(列表和集合中存的也是字符串),有序集合
数据大小:内存:单个value最大1G
数据容量:内存:千万级
数据速度:内存:10万次/秒读写;硬盘:定期批量写入

2,系统分析
系统空间:内存为hash容器,硬盘为二进制文件。
硬盘:支持多个数据库(默认16个)

3,重点分析
性能测试:适合小数据存储(小于100字节),速度是mysql的10倍。原因一是纯内存操作,二是自己实现事件机制,三是无token锁。
内存结构:基本数据结构为sds类型,使用hash表存储。可使用zipmap等方式压缩内存。
网络结构:单进程单线程的IO复用模型,使用乐观锁处理事务。redis作者不支持多线程,据他说有cache coherency啥的。


4,



windows性能测试:每秒3到4万次请求。


未完成。。。

运维网声明 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-315941-1-1.html 上篇帖子: redis常见使用 下篇帖子: Redis 配置文件参数说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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