首先声明:这篇文章目前只是一个草稿,等以后有时间再来完善,有兴趣的可以继续看下去。
本文采用自创的数据-系统分析法进行分析。
数据-系统分析法简介:
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 选择自己实现虚拟内存机制,而不是依赖操作系统的虚拟内存管理,主要是因为操作系统基于Page的换入换出策略...
- **开发调试**:在开发过程中,使用RDM可以方便地测试Redis的各种功能,快速定位问题。 - **运维管理**:运维人员可以通过RDM监控Redis服务器的状态,及时发现并解决问题。 - **数据备份与恢复**:利用数据导出和...
以上就是关于"尚硅谷周阳Redis笔记"的一些主要知识点,包括Redis的基本概念、数据类型、持久化、事务、复制、发布订阅、布隆过滤器、HyperLogLog以及GEO定位等功能的介绍。这个笔记资源对于学习和理解Redis的使用...
4. 日志查看:查看Redis服务的日志信息,帮助定位和解决问题。 5. 备份与恢复:支持对Redis数据进行备份,并能在需要时快速恢复,确保数据安全。 6. 安全控制:设置访问权限,保护Redis服务器免受未经授权的访问。...
- 错误日志:查看Tomcat和Redis的日志,分析异常信息,定位问题原因。 - 负载测试:通过模拟大量请求,评估系统的稳定性和性能瓶颈。 7. **扩展性** - Redis集群:当单个Redis实例无法满足需求时,可以考虑使用...
9. **搜索与筛选**:内置搜索功能,可以快速定位到目标键,同时还可以根据键或值进行筛选。 10. **脚本执行**:允许用户编写并执行Lua脚本,实现更复杂的Redis操作。 **二、使用流程** 1. **安装与启动**:下载...
3. **搜索功能**:提供搜索框,允许输入键或者部分键值进行查找,快速定位到目标数据。 4. **操作命令**:支持执行Redis命令,如`GET`、`SET`、`DEL`、`HGETALL`等,进行数据的读写和删除操作。 5. **事务处理**:...
3. **redis-cli.pdb**:这是一个调试信息文件,用于Windows调试器,帮助开发者在遇到问题时定位代码错误。 4. **EventLog.dll**:这是一个动态链接库,可能与Windows事件日志有关,用于记录Redis服务运行时的日志...
同时,支持搜索功能,快速定位所需键。 3. **命令执行**:Redis 支持丰富的命令操作,RedisStudio 允许用户直接在界面上输入命令,实时查看执行结果。包括 CRUD 操作、事务处理、脚本执行等,且提供命令历史记录,...
此外,它还有搜索功能,可以快速定位到特定的键,对于大数据量的Redis实例来说,这个功能尤为实用。 总结来说,RedisDesktopManager作为一款强大的Redis管理工具,提供了全面的功能,包括连接管理、数据操作、数据...
9. **监控与日志**:部署完成后,还需要设置监控系统(如Prometheus和Grafana)来监控系统性能,同时确保有合适的日志记录和分析机制,以便在出现问题时快速定位和解决问题。 通过以上步骤,我们可以构建一个基于...
9. **搜索功能**:能够快速搜索键,帮助定位特定的数据。 10. **快捷键支持**:提供快捷键操作,提高工作效率。 下载Redis Desktop Manager后,用户只需按照界面提示配置服务器地址、端口、密码等信息,即可开始...
4. **故障排查**:可视化的数据展示有助于快速定位问题,尤其是在处理复杂数据结构时。 ### 总结: Redis Studio 作为一款国产的 Redis 可视化工具,以其简洁的界面和强大的功能,为 Redis 用户提供了高效的管理和...
4. **日志分析**:Redis的日志文件分析工具,帮助用户快速定位问题和理解系统行为。 5. **备份与恢复**:辅助工具可能包含备份Redis数据到本地文件,或者从备份文件恢复数据的脚本。 Redis安装包通常包括以下步骤...
- 错误提示和调试支持,帮助开发者定位问题。 总之,Iedis作为Idea的Redis可视化工具插件,提供了一站式的Redis操作体验,简化了开发过程中的数据管理任务,提升了开发效率。通过熟练掌握Iedis的使用,开发者可以...
总体来说,《Redis开发运维实践指南》是一本综合性的指南,它不仅提供给开发和运维人员在实际工作中的具体操作指导,也帮助他们理解背后的工作原理,以及在遇到问题时如何定位和解决。这本书为Redis的应用和维护提供...
9. **redis-server.pdb**:程序数据库文件,包含了调试信息,主要用于在开发和调试过程中定位错误。 在Windows上部署Redis 5.0.10时,首先需要解压这个zip文件,然后根据需要修改配置文件。可以通过`redis-server....
6. **Bits per value (Bitmaps)**: Redis 3.0增强了Bitmaps功能,可以高效地处理位级别的操作,如设置、清除或检查特定位,这对于跟踪用户活动、状态标记等场景非常有用。 7. **地理空间索引`: Redis 3.0添加了`GEO...
4. **启动Redis服务**: 打开命令行窗口,定位到Redis的bin目录,使用以下命令启动Redis服务器: ``` redis-server.exe redis.windows.conf ``` 5. **测试连接**: 在同一个命令行窗口或新开一个,使用`redis-cli....
同时,还提供了搜索功能,能快速定位特定的键。 4. **数据类型支持** - 完全支持Redis的所有数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),并提供相应的视图...