温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Redis理论篇-为什么使用Redis?

发布时间:2020-03-22 00:42:43 来源:网络 阅读:1134 作者:在你的左边 栏目:数据库

1. Redis简介

    Redis 是一个Key-Value 存储系统。和Memcached 类似,它支持存储的value 类型相对更多, 包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove   及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式的排序。与memcached 一样,为了保证效率,数据都是缓存在内存中。区别的是Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。  

    1.1 Key-Value 存储系统简介

    Key-Value Store 是当下比较流行的话题,尤其在构建诸如搜索引擎、IM、P2P、游戏服务器、 SNS 等大型互联网应用以及提供云计算服务的时候,怎样保证系统在海量数据环境下的高性能、高可靠性、高扩展性、高可用性、低成本成为所有系统架构们挖苦心思考虑的重点,而怎样解决数据库服务器的性能瓶颈是最大的挑战。按照分布式领域的CAP 理论(Consistency、  Availability 、Tolerance to network Partitions 这三部分在任何系统架构实现时只可能同时满足其中二点,没法三者兼顾)来衡量,传统的关系数据库的ACID 只满足了Consistency、Availability ,因此在Partition tolerance 上就很难做得好。另外传统的关系数据库处理海量数据、分布式架构时候在 Performance Scalability 、Availability 等方面也存在很大的局限性.而Key-Value Store 更加注重对海量数据存取的性能、分布式、扩展性支持上,并不需要传统关系数据库的一些特征,例如:Schema、事务、完整 SQL  查询支持等等,因此在分布式环境下的性能相对于传统的关系数据库有较大的提升。

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的API 。从2010 年3 月15 日起,Redis 的开发工作由VMware主持.

1.2 Redis应用场景

   1.2.1 取最新N 个数据的操作

   1.2.2 排行榜应用,取TOP N 操作  

   这个需求与上面需求的不同之处在于,前面操作以时间为权重,这个是以某个条件为权重,比如按顶的次数排序,这时候就需要我们的sorted set 出马了,将你要排序的值设置成sorted set 的score,将具体的数据设置成相应的value ,每次只需要执行一条ZADD 命令即可。

    1.2.3、需要精准设定过期时间的应用

    比如你可以把上面说到的sorted  set  的score 值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了,不仅是清除Redis 中的过期数据,你完全可以把 Redis 里这个过期时间当成是对数据库中数据的索引,用 Redis 来找出哪些数据需要过期删除,然后再精准地从数据库中删除相应的记录.

1.3 Redis数据类型  

    作为Key-value 型数据库,Redis 也提供了键(Key)和键值(Value )的映射关系。但是,除了常规的数值或字符串,Redis 的键值还可以是以下形式之一:

       Lists  (列表)  

       Sets  (集合)  

       Sorted sets  (有序集合)  

       Hashes   (哈希表)  

   键值的数据类型决定了该键值支持的操作。Redis支持诸如列表、集合或有序集合的交集、并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis  则提供自增等原子操作。



                                以上内容出自红丸。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI