Redis --初识
面试的时候问了Redis 觉得很重要,私下学学:
为什么用使用redis?
- 海量的用户
- 高并发
Redis可以干什么
-
缓存:毫无疑问这是redis当今最让人熟知的使用场景,这可以提升服务器的性能
-
排行榜: 如果使用传统的数据库来实现这个,非常的麻烦,但是使用redis中的sortSet(有序集合)数据结构
能够非常方便的解决 -
计算器: 利用redis中原子自增操作,可以统计类似用户点赞,用户访问数
-
限速器: 经典的业务场景就是限制某个用户访问api的频率,常用在抢购时候,防止用户疯狂点击带来不必要的压力
-
好友关系: 利用集合的一些命令,比如交集(共同好友),并集(相同关注的),差集(和别人不一样的)
-
简单的消息的队列: redis自身存在发布/订阅模式,除过这个还可以使用list来实现一个队列机制,比如:到货通知
-
session共享:用户的session默认保存在服务器中,如果是在集群服务,同一个用户可能落在不同的机器上,就会导致用户的频繁登陆,如果将session存放在redis中,无论用户落在那一个机器中都能获得对应的session
Redis不能干什么
redis能干的事情有很多,用对了地方会提升机器的性能
但是如果redis去保存用户的基本信息,虽然他能够支持持久化,但是持久化方案并不稳定,而且会导致redis的性能下降。
简单的总结就是:** 数据量大,数据访问不频繁 不能使用redis **
Redis:
Redis(REmote DIctinary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库(NoSQL)
特征:
- 数据间没有必然的关联关系
- 内部采用单线程机制进行工作
- 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。
- 多数据类型支持:string(字符串类型)、list(列表类型)、hash(散列类型)、set(集合类型)、sorted_set(有序集合类型)
- 持久化支持。可以进行数据灾难恢复
Redis基本操作:
set 添加
get 获取