`
七月先知
  • 浏览: 148946 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Redis的定位

阅读更多
首先声明:这篇文章目前只是一个草稿,等以后有时间再来完善,有兴趣的可以继续看下去。

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

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

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

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

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

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

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

因此,对redis的整体分析,应以时代环境为背景,从数据和系统的角度,来分析它们的时空整体性。
关于redis的时代背景、为什么会出现redis以及宏观整体的分析,可参考我前一篇文章:http://igoder.iteye.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万次请求。


未完成。。。
分享到:
评论

相关推荐

    Redis硬核性能优化

    一、Redis为什么变慢了,分析Redis变慢的10个原因。...二、怎么确定Redis变慢了,多种工具协调定位是否变慢了,哪里变慢了? 三、针对变慢如何进行精准优化? 四、Redis优化流程化步骤,帮助应对线上问题。

    redis jedis 单机、集群、分片存储连接操作redis

    单机版:该类主要完成redis...分片存储:redis分片存储,该方式通过计算hash把数据均匀的存储在相应的redis库中,该方式只能操作通过分片存储的数据,其他单独客户端存储的数据,因hash定位 问题,无法找到键值数据。

    Redis3.0集群代理系统源码

    Redis3.0集群代理系统, 并发接收客户端请求,计算Key的哈希槽值,转发到对应的缓存服务器,并将缓存服务器的返回值回传给客户端, 这样客户端只要访问集群代理系统,实现一次性定位访问,效率与单台缓存服务器...

    springboot+redis实现查询附近商铺功能.zip

    springboot+redis实现查询附近商铺功能.zip

    redis执行redis命令的方法教程

    所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cmd窗口,将路径定位到Redis安装目录下,通过redis-server命令执行。 要在 redis 服务上执行命令需要一个 ...

    REDIS缓存数据库在JAVA中的使用

    redis介绍和java 调用redis入门教程。 Redis是一个使用C语言写成的,开源key-value数据库。它是一个小而美的数据库,主要用在内存缓存中,读写性能极佳,缓存与简单是其市场定位。

    Redis中文文档chm

    来自http://doc.redisfans.com/网站。编译成了chm,方便线下快速查阅,支持搜索定位。

    redis面试题热门20道以及解析

    redis面试题热门20道以及解析:这些面试题涵盖了Redis的核心概念和关键特性,包括其内存数据库的定位、数据结构、持久化机制、事务处理、高并发和高可用性策略。问题触及了Redis的性能优势、单线程模型、主从复制、...

    基于Springboot+Mybatis+ SpringMvc+springsecrity+Redis完整网站后台管理系统

    sl4j日志分包:将sql日志、业务日志、异常日志进行了分离,更方便定位问题 日志表:使用aop拦截实现 权限控制:基于token方式,禁用session 对各种不同异常进行了全局统一处理 使用lombok简化java代码,让源码...

    nicolasff-phpredis-2.2.1-3-g950765e.tar.gz

    phpredis 是 php 的一个扩展,是支持redis数据库的中间桥梁

    基于python+redis实现社区问答网页系统源码

    基于python+redis实现社区问答网页系统源码 在虚拟环境中运行命令“python manage.py run”启动项目。启动成功后,在浏览器中输入网址“127.0.0.1:9000”即可进入BBS问答社区首页。如图1所示。 在首页可以根据状态...

    geonear:使用 Redis 进行快速内存地理定位查询

    Geonear是一个提供由 Redis 支持的轻量级地理定位查询的库。 API 和代码被设计成有点类似于函数式编程风格。 考虑一下它是 Beta,还没有单元测试。 如何使用它 导入一些东西 >>> from redis import StrictRedis >>...

    Redis Tree(Ploytree) 结构模块

    它允许从 Redis 键创建、定位、推送和分离树。RedisTree 已经在生产环境运行一年了哥,来一趟不容易,点个星星呗可以给我一颗星吗...Donne moi une étoile星ください나에게 별을 줘为什么?在 redis 中存储组织数据...

    RSSI的室内人员卡尔曼滤波定位算法-论文

    RSSI定位技术的室内定位算法中,由于室内环境的复杂性及人员的随机性等因素可能会带有噪声影响,所以需要加以抑制。本次设计的室内定位算法首先根据室内特殊环境设计出定位算法流程图,建立算法模型并用卡尔曼滤波算法...

    RedisTree:Redis Tree(Ploytree)结构模块

    它允许从Redis密钥创建,定位,推送和分离树。 RedisTree在生产环境中运行了一年哥,来一趟不容易,点个Star呗你能给我一颗星星吗?邓恩·莫伊·埃托伊勒星をください줘为什么?将组织数据存储在redis,Need ...

    详解PHP使用Redis存储session时的一个Warning定位

    1. 问题现象 系统页面刷新的时候,偶尔会报错下面的Warnning,但是不经常出现: Warning: Unknown: Failed to write session data (Redis). Please verify that the current ...定位问题: 查看PHP文件是否有设置sessi

    详解Redis的慢查询日志

    Redis慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详细信息)记录...

    Redis分析慢查询操作的实例教程

    和mysql的慢SQL日志分析一样,redis也有类似的功能,来帮助定位一些慢查询操作。 Redis slowlog是Redis用来记录查询执行时间的日志系统。 查询执行时间指的是不包括像客户端响应(talking)、发送回复等IO操作,而单单...

    寇申海(springboot+websocket+es+redis+mq+mongodb+mysql)-播妞影视管理系统.rar

    项目分为前台和后台两个模块,总共有十三个功能模块,后台是电影基本信息管理模块、用户信息管理模块、角色信息管理模块、权限管理模块、消息与通知管理模块、数据监测...前台是地图定位模块、在线选座模块、支付模块。

    后台管理系统+springBoot+Jpa+JWT+Redis+Vue

    一个基于 Spring Boot 2.6.4 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue的前后端分离的后台管理系统 用户管理:提供用户的相关配置,新增用户后,默认密码为123456 角色管理:对权限与菜单进行分配,可...

Global site tag (gtag.js) - Google Analytics