• redis复习总结


    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同时过期,导致缓存雪崩。

  • 相关阅读:
    Python轮廓追踪【OpenCV形态学操作】
    信息收集&WAF识别&蜘蛛头
    力扣1115 循环交替打印
    背包问题~
    一文让你彻底掌握【Python中的filter函数】
    卡尔曼滤波器
    .NET餐厅管理系统user数据帮助类查询、找回密码、添加管理员
    如何上传自己的Jar到Maven中央仓库
    1、Jvm体系结构(jvm位置,jvm体系结构)
    使用前缀和数组解决“区间和查询“问题
  • 原文地址:https://blog.csdn.net/weixin_43847969/article/details/125609972