java面试题网

普通会员

72

帖子

7

回复

31

积分

楼主
发表于 2018-04-19 17:53:40 | 查看: 5511| 回复: 1

Redis有哪些优势?

(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 
(2) 支持丰富数据类型,支持string,list,set,sorted set,hash 
(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 
(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/376_1_1.html


java面试题交流群:327440556

普通会员

115

帖子

83

回复

169

积分
沙发
发表于 2019-09-27 15:10:18

Redis的优缺点
优点:
a) 性能极高 – Redis 能支持超过 100K+ 每秒的读写频率。
b) 丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets数据类型操作。
c) 原子 – Redis 的所有操作都是原子性的,同时 Redis 还支持对几个操作全并后的原子性执行。
attention 原子性定义:例如,A想要从自己的帐户中转1000块钱到B的帐户里。那个从A开始转帐,到转帐结
束的这一个过程,称之为一个事务。如果在 A 的帐户已经减去了 1000 块钱的时候,忽然发生了意外,比如停电什么
的,导致转帐事务意外终止了,而此时 B 的帐户里还没有增加 1000 块钱。那么,我们称这个操作失败了,要进行回
滚。回滚就是回到事务开始之前的状态,也就是回到 A 的帐户还没减 1000 块的状态,B 的帐户的原来的状态。此时
A的帐户仍然有3000 块,B的帐户仍然有2000块。我们把这种要么一起成功(A帐户成功减少1000,同时B帐户
成功增加1000),要么一起失败(A帐户回到原来状态,B帐户也回到原来状态)的操作叫原子性操作。如果把一个
事务可看作是一个程序,它要么完整的被执行,要么完全不执行,这种特性就叫原子性。
d)丰富的特性 – Redis 还支持 publish/subscribe, 通知, key 过期等等特性。
缺点:
a). 由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis 本身有key 过
期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。
b). 如果进行完整重同步,由于需要生成 rdb 文件,并进行传输,会占用主机的 CPU,并会消耗现网的带宽。
不过redis2.8版本,已经有部分重同步的功能,但是还是有可能有完整重同步的。比如,新上线的备机。
c). 修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能
提供服务。 

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018