详解什么是redis
企业中redis是必备的性能优化中间件,也是常见面试题,首先Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。
那么为什么要使用类似redis?
单机时代,存储只用一台机器装mysql,如果每次存储成千上万条数据,这样很会导致mysql的性能很差,存储以及读取速度很慢,然后就演变成缓存+mysql+垂直拆分的方式。
如图 引入redis后后架构变化
Redis有多快 ?
Redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能。
例如运行命令
./redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
这是模拟100个并发连接,总共100000个请求,检测host为127.0.0.1端口为6379的redis 所有指令性能
其中一个指令截图,一秒钟可以达到9万多次操作,可以提高数据库上百倍访问速度,这还是在虚拟机环境下测试。
redis-benchmark 命令行说明(有兴趣的同学可以压测下公司环境redis性能)
关于redis 还有个常见疑惑,什么是Nosql?
传统关系数据库结构
Redis支持的数据库结构
这种非关系型数据库统称nosql。
Redis为什么有这么多数据结构,主要原因不光提供了高性能缓存,更关键的提供了很多数据结构来简化后台业务开发。
例如对List 列表结构支持
对Set 列表支持
List 和Set什么区别呢,有的面试官会深挖下去,这就实在考察大家的基本功了。
Set可以去重,我们如果有这样业务需求,直接将数据给redis,就可以满足数据去重了。
作 者:Testfan 极光
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接
最新文章
- [转]How to: Create a Custom Principal Identity
- HTML5-03 页面布局
- JS继承模式粗探
- iOS定时器、延迟执行
- 关于Linux发行版的选择
- C# A窗口内容显示在B窗口中的方法
- Welcome to Linux From Scratch!
- iPad 3g版完美实现打电话功能(phoneitipad破解)
- 详细的css命名规则,专业点吧
- 重学C语言---01概述
- Ztree改版 - 将图标字体化 - fontAwesome
- [经验总结] 从其它sheet页引用数据生成图表时没有图例的解决办法
- ExtJs写本地ArrayStore,ComboBox调用
- asp.net 中Repeater和Gridview的区别
- 下载网络文件HttpURLConnection.getContentLength()大小为 0
- 第二周作业-web后台应用开发与xml
- myEclipse异常:Subversion Native Library Not Available
- [osg][原]osg的坐标系:使用右手法则Y轴向前、X向、右Z向上。camare的默认姿态:向下看(Z轴负向),头向前(Y轴正向)
- webstorm 自动编译ts
- [UE4]创建游戏、加入游戏
热门文章
- Hibernate的基本开发流程
- ABAP 将Range 条目数转化
- ABAP 动态内标排序
- Appium——Error while obtaining UI hierarchy XML file:com.android.ddmlib.SyncException:
- BestCoder8 1002 Revenge of Nim(hdu 4994) 解题报告
- python cassandra 创建space table并写入和查询数据
- codevs 1046 旅行家的预算
- vue-router 获得上一级路由以及返回上一级路由的方法
- pytest用例setup和teardown
- SQL Agent 与 Analysis Server 使用同一个账号