redis相关问题

什么是Redis?简述它的优缺点?

  • Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中

      进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。

  • 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,

   是已知性能最快的Key-Value DB。

  • Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,

   不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。

  • 比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,

   用他的Set可以做高性能的tag系统等等。

  • 另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。
  • Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的

     场景主要局限在较小数据量的高性能操作和运算上。


RDB与AOF的区别

  RDB 保存的是数据本身,AOF保存的是命令。

Redis集群

  主服务器挂掉,从服务器依然是slave的状态

  从服务器挂掉,重启后变成master状态,解决此现象需使用哨兵模式

  

 

Redis集群会有写操作丢失吗?为什么?

  Redis并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。

Redis集群之间是如何复制的?

  异步复制。

Redis集群如何选择数据库?

  Redis集群目前无法做数据库选择,默认在0数据库。

怎么测试Redis的连通性?

  ping,返回pong。

为什么Redis需要把所有数据放到内存中?

  Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。

  所以redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。

  在内存越来越便宜的今天,redis将会越来越受欢迎。 如果设置了最大使用的内存,则数据已有记录

  数达到内存限值后不能继续插入新值。

怎么理解Redis事务?

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,

  不会被其他客户端发送来的命令请求所打断。

  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

Redis事务相关的命令有哪几个?

  MULTI、EXEC、DISCARD、WATCH

Redis如何做内存优化?

  • 尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,

  所以你应该尽可能的将你的数据模型抽象到一个散列表里面。

  • 比如你的web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,

  而是应该把这个用户的所有信息存储到一张散列表里面。



原文地址:https://www.cnblogs.com/swanyf/p/10229098.html