加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Redis不懂,口试担忧不外,一次性办理口试Redis标题(含谜底)?

发布时间:2018-11-02 21:50:14 所属栏目:编程 来源:JavaSpring高级进阶
导读:Redis是一个很是火的非相关型数据库,火到什么水平呢?只要是一个互联网公司城市行使到。Redis相干的题目可以说是口试必问的,下面我从小我私人对口试官的履历,总结几个必必要把握的常识点。 先容:Redis 是一个开源的行使 ANSI C 说话编写、遵守 BSD 协议、支

哨兵

Redis不懂,口试担忧不外,一次性办理口试Redis标题(含谜底)?

Redis sentinel 是一个漫衍式体系中监控 redis 主从处事器,并在主处事器下线时自动举办妨碍转移。个中三个特征:监控(Monitoring): Sentinel 会不绝地搜查你的主处事器和从处事器是否运作正常。

提示(Notification): 当被监控的某个 Redis 处事器呈现题目时, Sentinel 可以通过 API 向打点员可能其他应用措施发送关照。

自动妨碍迁徙(Automatic failover): 当一个主处事器不能正常事变时, Sentinel 会开始一次自动妨碍迁徙操纵。

特点:

  1. 担保高可用
  2. 监控各个节点
  3. 自动妨碍迁徙

弱点:主从模式,切换必要时刻丢数据

没有办理 master 写的压力

集群(proxy 型):

Redis不懂,口试担忧不外,一次性办理口试Redis标题(含谜底)?

Twemproxy 是一个 Twitter 开源的一个 redis 和 memcache 快速/轻量级署理处事器; Twemproxy 是一个快速的单线程署理措施,支持 Memcached ASCII 协媾和 redis 协议。

特点:

  1. 多种 hash 算法:MD5、CRC16、CRC32、CRC32a、hsieh、murmur、Jenkins
  2. 支持失败节点自动删除
  3. 后端 Sharding 分片逻辑对营业透明,营业方的读写方法和操纵单个 Redis 同等

弱点:

  1. 增进了新的 proxy,必要维护其高可用。
  2. failover 逻辑必要本身实现,其自己不能支持妨碍的自动转移可扩展性差,举办扩缩容都必要手动过问

集群(直连型):

Redis不懂,口试担忧不外,一次性办理口试Redis标题(含谜底)?

从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster回收无中心布局,每个节点生涯数据和整个集群状态,每个节点都和其他全部节点毗连。

特点:

  1. 无中心架构(不存在哪个节点影响机能瓶颈),少了 proxy 层。
  2. 数据凭证 slot 存储漫衍在多个节点,节点间数据共享,可动态调解数据漫衍。
  3. 可扩展性,可线性扩展到 1000 个节点,节点可动态添加或删除。
  4. 高可用性,部门节点不行用时,集群仍可用。通过增进 Slave 做备份数据副本
  5. 实现妨碍自动 failover,节点之间通过 gossip 协议互换状态信息,用投票机制完成 Slave到 Master的脚色晋升。

弱点:

  1. 资源断绝性较差,轻易呈现彼此影响的环境。
  2. 数据通过异步复制,不担保数据的强同等性

什么是同等性哈希算法?什么是哈希槽?

这两个题目篇幅过长 网上找了两个解锁的不错的文章

www.cnblogs.com/lpfuture/p/…

blog.csdn.net/z1573262158…

Redis常用呼吁?

  • Keys pattern 暗示区配全部 以bit开头的 查察Exists key是否存在
  • Set 配置 key 对应的值为 string 范例的 value。
  • setnx 配置 key 对应的值为 string 范例的 value。假如 key 已经存在,返回 0,nx 是 not exist 的意思。 删除某个key 第一次返回1 删除了 第二次返回0
  • Expire 配置逾期时刻(单元秒)
  • TTL 查察剩下几多时刻
  • Setex 配置 key 对应的值为 string 范例的 value,并指定此键值对应的有用期。
  • Mset 一次配置多个 key 的值,乐成返回 ok 暗示全部的值都配置了,失败返回 0 暗示没有任何值被配置。
  • Getset 配置 key 的值,并返回 key 的旧值。
  • Mget 一次获取多个 key 的值,假如对应 key 不存在,则对应返回 nil。
  • Incr 对 key 的值做加加操纵,并返回新的值。留意 incr 一个不是 int 的 value 会返回错误,incr 一个不存在的 key,则配置 key 为 1
  • incrby 同 incr 相同,加指定值 ,key 不存在时辰会配置 key,并以为原本的 value 是 0
  • Decr 对 key 的值做的是减减操纵,decr 一个不存在 key,则配置 key 为-1
  • Decrby 同 decr,减指定值。
  • Append 给指定 key 的字符串值追加 value,返回新字符串值的长度。
  • Strlen 取指定 key 的 value 值的长度。
  • persist 打消逾期时刻
  • Select 选择数据库
  • Randomkey 随机返回一个key
  • Rename 重定名
  • Type 返回数据范例

行使过Redis漫衍式锁么,它是怎么实现的?

先拿setnx来争抢锁,抢到之后,再用expire给锁加一个逾期时刻防备锁健忘了开释。 假如在setnx之后执行expire之前历程不测crash可能要重启维护了,那会怎么样? set指令有很是伟大的参数,这个应该是可以同时把setnx和expire合成一条指令来用的!

行使过Redis做异部行列么,你是怎么用的?有什么弱点?

一样平常行使list布局作为行列,rpush出产动静,lpop斲丧动静。当lpop没有动静的时辰,要恰当sleep一会再重试。 弱点: 在斲丧者下线的环境下,出产的动静会丢失,得行使专业的动静行列如rabbitmq等。 能不能出产一次斲丧多次呢? 行使pub/sub主题订阅者模式,可以实现1:N的动静行列。

什么是缓存穿透?怎样停止?什么是缓存雪崩?何如停止?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读