Redis的介绍

什么是redis?
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(ava,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang)。Redis 是一个高性能的key-value数据库,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

Redis是当前互联网最为流行的NoSQL(Not Only SQL)数据库,NoSQL 在互联网系统中的作用很大,因为它可以在很大程度上提高互联网系统的性能。

为什么要用redis?
1.Redis 是一个高性能的key-value数据库,redis数据库中的所有数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存,这样,后面的请求就去缓存中读取,请求使得能够迅速响应。
2.考虑大并发,高负载的情况,在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用的的Redis的做一个缓冲操作,让请求先访问Redis中的缓存,而不是直接访问数据库。

redis的特点?
1.运行在内存,读取速度快。
2.数据虽在内存,但是提供了持久化的支持,即可以将内存中的数据异步写入到硬盘中,同时不影响继续提供服务,断电或重启,数据也不会丢失。
3.支持数据结构丰富(string(字符串),list(链表),set(集合),zset(sorted set - 有序集合))和Hash(哈希类型,md5加密出来的那个串)。
4.支持多种编程语言:java,python,ruby,php,Lua,nodejs…
5.功能丰富:可以实现发布-订阅,支持事务、Lua脚本。
6.简单:不依赖于外部库、单线程模型
7.主从复制:主服务器同步数据到从服务器,可以配置集群,更利于支撑大型的项目。

redis典型应用场景:
1.缓存系统:这个就不多说了,redis作为高速缓存是其主要存在的价值。
2.计数器:因为是原子操作+单线程,作为计数器永远不会出错。
3.消息队列系统:数据结构可以实现这种生产者-消费者模式的消息队列(支付)。
4.排行榜:有序集合sorted set就可以实现
5.社交网络:redis与社交网络就是一家,非常方便就能实现诸如共同好友这些功能。
6.实时系统:如垃圾邮件处理系统。
7.发布,订阅消息(消息通知)
8.商品列表,评论列表

redis优势:
1.缓存管理:可以在必要时将无效的旧数据从内存中删除,为新数据腾出新的空间.
2.提供更大的灵活性:redis支持多种类型,并且采用key-value 的形式存储,key和value的大小限制都是512Mb,与编码无关,所以数据安全。
3…redis提供主从复制:实现高可用的cache系统,支持集群中多个服务器之间的数据同步。
4.数据持久化:redis将数据进行持久化,一定程度上规避缓存中的数据不稳定的问题,也可以在重启服务器时最快的恢复缓存中所需的数据,提高了效率的同时减轻了主数据库系统的开销,断电或重启,数据也不会丢失。

Redis是纯内存数据库,相对于读写磁盘,读写内存的速度就不是几倍几十倍了,一般,hash查找可以达到每秒百万次的数量级。

目前 NoSQL 有很多争议,有些人认为它可以取代数据库,但其实不然,因为数据库系统有更好的规范性和数据完整性,功能更强大,作为持久层更为完善,安全性更高。而 NoSQL 结构松散、不完整,功能有限,目前尚不具备取代数据库的实力,但是作为缓存工具,它的高性能、高响应等功能,使它成为一个很重要的工具。

当前 Redis 已经成为了主要的 NoSQL 工具:
1.响应快速:Redis 响应非常快,每秒可以执行大约 110 000 个写入操作,或者 81 000 个读操作,其速度远超数据库。如果存入一些常用的数据,就能有效提高系统的性能。
2.支持 6 种数据类型:方便开发
3.操作都是原子的:所有 Redis 的操作都是原子的,从而确保当两个客户同时访问 Redis 服务器时,得到的是更新后的值(最新值)。在需要高并发的场合可以考虑使用 Redis 的事务,处理一些需要锁的业务。

Redis 具备这些优点,使得它成为了目前主流的 NoSQL 技术,在 Java 互联网中得到了广泛使用。一方面,使用 NoSQL 从数据库中读取数据进行缓存,就可以从内存中读取数据了,而不像数据库一样读磁盘。现实是读操作远比写操作要多得多,所以缓存很多常用的数据,提高其命中率有助于整体性能的提高,并且能减缓数据库的压力,对互联网系统架构是十分有利的。另一方面,它也能满足互联网高并发需要高速处理数据的场合,比如抢红包、商品秒杀等场景,这些场合需要高速处理,并保证并发数据安全和一致性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值