技术编程|Redis的由来
什么是redis?它的全名是REmote DIctionary Server(远程字典服务) , 是一个由Salvatore Sanfilippo写的key-value内存型数据库 。Redis 是一个开源(BSD许可)的 , 内存中的数据结构存储系统 , 它可以用作数据库、缓存和消息中间件 。它支持多种类型的数据结构 , 如 字符串(strings) ,散列(hashes) ,列表(lists) ,集合(sets) ,有序集合(sorted sets) 与范围查询 ,bitmaps ,hyperloglogs 和 地理空间(geospatial) 索引半径查询 。Redis 内置了 复制(replication) , LUA脚本(Lua scripting) ,LRU驱动事件(LRU eviction) , 事务(transactions) 和不同级别的 磁盘持久化(persistence) ,并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability) 。同时它也属于NoSql数据库 , 讲到这里有的人会问什么是NoSql数据库 。
【技术编程|Redis的由来】
文章图片
文章图片
NoSql数据库特点
1.NOSQL数据库不支持SQL语法
2.存储结构都是kv形式(key value)
3.NOSQL的数据库没有一种通用语言 , 每种NOSQL都有自己的语法和api , 以及擅长的业务和场景
比如Hbase、Mongodb等都属于nosql数据库 。
回归正题 , 那redis有什么特点呢?
1. Redis不仅仅支持简单的key-value类型的数据 , 同时还提供list , set , zset , hash等数据结构的存储;
2. Redis支持数据的持久化 , 例如RDB方式和AOF方式(后面会对此详细说明)
3. Redis支持数据备份 , 即master-slave模式的数据备份
Redis有哪些优势呢?
1. 首先是性能高 , 每秒能达到读110000次 , 写81000次 。
2. 提供丰富的数据类型Stirng、List、Set、Hashes等 。
3. Redis所有操作都是原子性的 , 要么成功要么失败 , 多个操作也支持事务 。
4. 丰富的特性例如支持订阅发布、key过期等 。
为什么现在流行使用redis呢?
对于这个问题就要从数据库的发展史说起了 , 在很久很久以前 , 数据都是以文件的方式保存在磁盘上的 。如果这时需要读取一行数据需要全量扫描整个磁盘 , 如果数据量小还好 , 数据流一旦变大了 , 因为受到磁盘带宽的影响 , 扫描寻找文件的时间就会变的越来越长 。大家应该试过在电脑磁盘中搜索某个文件 , 当你磁盘存了一百几十G的文件的时 , 是不是要搜索好久 。所以为了解决这个问题 , 数据就诞生了 。数据库采用分治和索引 , 之前数据放在文件里, 如果要去磁盘查找文件, 需要发生全量扫描, 也就是全量io. 数据库的诞生, 一定是要避免全量扫描的发生. 所以, 数据库设计的时候, 设计成了分治的形式. 分成不同的datapage片区, 每个片区4k, 16k等可以设置. 这样, 我保存数据的时候, 将数据放到不同的片区. 那什么是索引呢 , 索引就好像一本字典的目录 , 记录着什么数据保存在什么位置 , 每当查找数据如果建立了索引 , 那么可以通过索引直接定位到数据存在哪个片区 , 避免了扫描全部片区 。
既然数据解决了大部分问题了 , 那为什么需要使用redis呢?互联网发展到现在已经是大数据时代了 , 一个热点新闻 , 某电商网站的双十一抢购秒杀 , 春节期间的购票大战等 , 少则几十万 , 多则百万、千万级别的访问流量 。那瞬间这么多请求直接压到数据库服务器 , 这是要集群多少台数据库服务器才能承受这些访问量 , 估计分分钟挂了 。
文章图片
文章图片
这时就需要在用户与数据库之间再加一层缓冲层 , 让请求先访问到redis , 由于redis基于内存的数据库 , 响应速度快 , 网络层使用epoll解决高并发问题 , 单线程模型避免了不必要的上下文切换及竞争条件 。然后再定时把redis中的数据更新到数据库中 , 保证数据的最终一致性 。
推荐阅读
- 摄像头|小米截胡中兴屏下摄像头技术,小米研发还是供应链技术?
- 马斯克|马斯克用活猪演示脑机接口技术:实时读取猪脑信息 心灵感应成真了
- 三防|带你了解三防手持终端的秘密
- 第三|原创 小米发布第三代屏下相机技术,或将在Mix 4上首秀?
- 海信|首个新兴显示技术分标委成立 海信牵头制定国标
- 中年|Python编程语言有什么独特的优势呢?
- |马斯克用活猪演示脑机技术,他希望今年年底前能在人体内植入
- 互联网的放大镜|小米截胡中兴屏下摄像头技术,小米研发还是供应链技术?
- 新机发布|原创 小米发布第三代屏下相机技术,或将在Mix 4上首秀?
- 技术|最新《中国禁止出口限制出口技术目录》发布,新增操作系统、密码芯片安全技术