redis复习总结

发布时间:2024-05-21 09:01

Redis

Redis可以用来做什么

1.Redis最长用来做缓存,是实现分布式缓存的首先中间件
2.Redis可以作为数据库,实现诸如点赞,关注,排行等对性能要求极高的互联网需求
3.Redis可以作为计算工具,能用很小的代价,统计诸如PV/UV,用户在线天数等数据
4.Redis还有很多其他的使用场景,例如:可以实现分布式锁,可以作为消息队列使用。

Redis和传统的关系型数据库有什么不同?

Redis是一种基于键值对的NoSQL数据库,而键值对的值是由多种数据结构和算法组成的。Redis的数据都存储与内存中,因此它的速度惊人,读写性能可达10万/秒,远超关系型数据库

关系型数据库是基于二维数据表来存储数据的,它的数据格式更为严谨,并支持关系查询。关系型数据库的数据存储于磁盘上,可以存放海量的数据,但性能远不如Redis

区别:
NoSQL存放在内存中,关系型数据库存放在磁盘中

Redis有哪些数据类型

1.Redis支持5中核心的数据类型,分别是字符串,哈希,列表,集合,有序集合
2.Redis还提供了Bitmap,HyperLogLog,Geo类型,但是这些都是基于上述的核心数据类型实现的
3.Redis在5.0新增加了Streams数据类型,它是一个功能强大的、支持多播的、可持久化的消息队列。

Redis为什么是单线程的却这么快

1.单线程避免了线程切换和竞争所产生的消耗
2.Redis大部分操作在内存上完成
3.Redis采用了IO多路复用机制,使其在网络IO操作中能并发处理大量的客户端请求,实现高吞吐率。

set和zset有什么区别呢

set:即集合

集合中的元素是无序、不可重复的,一个集合最多能存储232-1个元素;

集合除了支持对元素的增删改查之外,还支持对多个集合取交集、并集、差集。

zset:即有序集合

有序集合保留了集合元素不能重复的特点;

有序集合会给每个元素设置一个分数,并以此作为排序的依据;

有序集合不能包含相同的元素,但是不同元素的分数可以相同。

1.7 说一下Redis中的watch命令

参考答案

很多时候,要确保事务中的数据没有被其他客户端修改才执行该事务。Redis提供了watch命令来解决这类问题,这是一种乐观锁的机制。客户端通过watch命令,要求服务器对一个或多个key进行监视,如果在客户端执行事务之前,这些key发生了变化,则服务器将拒绝执行客户端提交的事务,并向它返回一个空值。

1.8 说说Redis中List结构的相关操作

参考答案

列表是线性有序的数据结构,它内部的元素是可以重复的,并且一个列表最多能存储2^32-1个元素。列表包含如下的常用命令:

lpush/rpush:从列表的左侧/右侧添加数据;

lrange:指定索引范围,并返回这个范围内的数据;

lindex:返回指定索引处的数据;

lpop/rpop:从列表的左侧/右侧弹出一个数据;

blpop/brpop:从列表的左侧/右侧弹出一个数据,若列表为空则进入阻塞状态。

1.9 你要如何设计Redis的过期时间?

参考答案

热点数据不设置过期时间,使其达到“物理”上的永不过期,可以避免缓存击穿问题;

在设置过期时间时,可以附加一个随机数,避免大量的key同时过期,导致缓存雪崩。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号