Redis是什么-,服务器上部署redis的服务

  Redis是什么?,服务器上部署redis的服务

  1.Redis是什么?

  Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的内存缓存数据库。Redis的全称是:RemoteDictionaryServer(远程数据服务)。这个软件是用C语言编写的。Redis是一个键值存储系统,支持丰富的数据类型,如字符串、列表、集合、zset(排序集)和hash。

  2.Redis功能

  Redis使用内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256字节的字符串为例,其读取速度可达110000次/秒,写入速度可达81000次/秒。

  与memcache不同,Redis对存储在Redis中的数据具有持久性,断电或重启后数据不会丢失。因为Redis的存储分为内存存储、磁盘存储和日志文件三部分,重启后Redis可以将数据从磁盘重新加载到内存中,这可以通过配置文件进行配置。正因为如此,Redis才能坚持下来。

  Redis支持主从模式,集群可以配置,更有利于支持大型项目,这也是Redis的一大亮点。

  3.Redis应用场景,它能做什么?

  许多语言支持Redis。因为Redis可以快速交换数据,所以经常用在服务器中,用来存储一些需要经常检索的数据。这样可以大大节省系统直接读取磁盘获取数据的I/O开销,更重要的是可以大大提高速度。

  以大型网站为例。比如网站A的首页,每天有100万人访问,有一个板块是推荐新闻。如果直接从数据库查询,一天要消耗100万次数据库请求。如上所述,Redis支持丰富的数据类型,因此这可以由Redis来完成。当你想使用这个热数据的时候,可以直接从内存中取数据,大大提高了速度,节省了服务器的开销。

  1.使用Redis有什么好处?

  (1)速度快,因为数据存在于内存中,类似于HashMap,其优点是搜索和运算的时间复杂度为O(1)。

  (2)支持丰富的数据类型,字符串、列表、集合、排序集、哈希

  (3)支持事务,所有操作都是原子的。所谓原子性是指对数据的所有更改都将被执行,或者都不执行。(4)功能丰富:可用于缓存和消息,过期时间可按键设置,过期自动删除。

  2.Redis比memcached有什么优势?

  (memcached的所有值都是简单的字符串,redis作为其替代品,支持更丰富的数据类型。

  (2) redis比memcached快很多。

  (3) redis可以持久化其数据。

  3.Redis常见性能问题及解决方案:

  (1) Master最好不要做任何持久的工作,比如RDB内存快照和AOF日志文件。

  (2)如果数据重要,从机打开AOF备份数据,策略设置为每秒同步。

  (3)为了主从复制的速度和连接的稳定性,主从最好在同一个局域网内。

  (4)尽量避免给压力大的主库添加从库。

  (5)主从复制不要用图结构,要用单向链表结构,这样更稳定,即:主从1-从2-从3。

  这种结构便于解决单点故障问题,实现主从替代。如果Master挂机,可以立即使Slave1成为Master,其余保持不变。

  4.MySQL有2000w数据,redis只有20w数据。如何保证redis中的数据都是热点数据?

  知识:当redis内存数据集的大小上升到一定大小时,就会执行数据消除策略。Redis提供了六种数据消除策略:

  Voltile-lru:从设置了过期时间的数据集中选择最近最少使用的数据(server.db[i])。过期)并将其报废。

  Volatile-ttl:从带有过期时间的数据集中选择要过期的数据(server.db[i])。过期)并将其报废。

  Volatile-random:从设置了到期时间的数据集中任意选择数据报废(server.db[i])。过期)

  Allkeys-lru:从数据集中选择最近最少使用的数据(server.db[i])。dict)并将其退役。

  Allkeys-random:从数据集(server.db[i])中选择任意数据。dict)被淘汰。

  禁止:禁止驱逐数据。

  5.Memcache和Redis有什么区别?

  1)、存储模式

  Memecache将所有数据存储在内存中,断电后会挂机。数据不能超过内存大小。

  Redis的一部分存储在硬盘上,可以保证数据的持久性。

  2)数据支持的类型

  Memcache对数据类型的支持相对简单。

  Redis有复杂的数据类型。

  3)使用不同的基础模型

  它们与客户端通信的底层实现和应用协议是不同的。

  Redis直接自建VM机制,因为一般系统调用系统函数的话,会浪费一定的时间去移动和请求。

  4)、价值大小

  Redis最大可达1GB,而memcache只有1MB。

  6.Redis有哪些常见的性能问题?怎么解决?

  1).Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作。快照大的时候会对性能有很大影响,会间歇性暂停服务,所以Master最好不要写内存快照。

  2).AOF大师坚持不懈。如果不重写AOF文件,这种持久化方法对性能的影响最小,但是AOF文件会继续增长。太大的AOF文件会影响主重启的恢复速度。Master最好不要做任何持久化的工作,包括内存快照和AOF日志文件,尤其是不要为了持久化而启用内存快照。如果数据是关键的,从站启动AOF来备份数据,策略是每秒同步一次。

  3).Master调用BGREWRITEAOF重写AOF文件。重写时,AOF会占用大量CPU和内存资源,导致服务负载高,服务暂停时间短。

  Redis主从复制的性能问题。为了主从复制的速度和连接的稳定性,主从最好在同一个局域网内。

  7.最适合Redis的场景

  Redis是最适合所有数据存储的场景。Redis虽然也提供持久化,但实际上更多的是一种磁盘备份的功能,与传统意义上的持久化有很大的不同。所以可能大家都会有疑问。看起来Redis更像是Memcached的加强版,那么什么时候用Memcached,什么时候用Redis呢?

  如果我们简单比较一下Redis和Memcached的区别,大部分都会得到以下看法:

  1.Redis不仅支持简单的k/v数据,还提供了list、set、zset、hash等数据结构的存储。

  2.Redis支持数据备份,即主从模式的数据备份。

  3.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载使用。

  (1)会话缓存

  使用Redis最常用的场景是会话缓存。使用Redis缓存会话相对于其他存储(如Memcached)的优势在于Redis提供了持久性。在维护一个不严格一致的缓存时,如果用户的购物车信息全部丢失,大多数人都会不高兴。现在,他们还会这样吗?

  幸运的是,随着这些年来Redis的改进,很容易发现如何正确使用Redis来缓存会话的文档。甚至知名商业平台Magento也为Redis提供插件。

  (2)整页缓存(FPC)

  除了基本的会话令牌,Redis还提供了一个非常简单的FPC平台。回到一致性问题,即使Redis实例重启,用户也不会因为磁盘持久化而看到页面加载速度的下降,这是很大的进步,类似于PHP原生FPC。

  再次以Magento为例。Magento提供了一个插件来使用Redis作为整页缓存后端。

  除此之外,对于WordPress用户来说,Pantheon有一个非常好的插件wp-redis,可以帮助你以最快的速度加载你浏览过的页面。

  (3)排队

  Reids在内存存储引擎领域的优势之一是提供了列表和集合操作,这使得Redis成为一个很好的消息队列平台。Redis作为队列的操作类似于本地编程语言(比如Python)对list的push/pop操作。

  如果你在Google中快速搜索“Redis queues”,你会立刻发现大量的开源项目。这些项目的目的是使用Redis创建非常好的后端工具,以满足各种队列需求。比如芹菜就有使用Redis做经纪人的背景。你可以在这里查看。

  (4)、排行榜/计数器

  Redis可以很好地增加或减少内存中的数字。集合和有序集合也使我们执行这些操作变得非常简单。Redis正好提供了这两种数据结构。因此,我们希望从排序后的集合中获得前10名用户,我们称之为“user_scores ”,我们只需如下执行它:

  当然,这是假设你根据用户的分数进行递增排序。如果您想返回用户及其分数,您需要这样做:

  ZRANGE user_scores 0 10带分数

  Agora Games就是一个很好的例子,是用Ruby实现的。它的排行榜使用Redis存储数据,你可以在这里看到。

  (5)发布/订阅

  最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实很多。我见过有人在社交网络连接中使用它,它也可以作为基于发布/订阅的脚本触发器,甚至使用Redis的发布/订阅功能来构建聊天系统!不,是真的,你可以去查。

  在Redis提供的所有功能中,我感觉这个是我最不喜欢的一个,虽然它为用户提供了多种功能。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • redis队列操作命令,redis 循环队列
  • redis队列操作命令,redis 循环队列,redis实现简单队列
  • redis部署应用服务器上,redis如何启动服务器
  • redis部署应用服务器上,redis如何启动服务器,搭建Redis服务器步骤详细介绍
  • redis缓存穿透和击穿解决方案,redis缓存穿透,缓存雪崩解决
  • redis缓存穿透和击穿解决方案,redis缓存穿透,缓存雪崩解决,redis缓存穿透解决方法
  • Redis缓存,redis和缓存
  • Redis缓存,redis和缓存,Redis缓存详解
  • redis的配置,启动,操作和关闭方法有哪些,关闭redis的命令,Redis的配置、启动、操作和关闭方法
  • redis的主从配置方法详解图,Redis主从配置
  • redis的主从配置方法详解图,Redis主从配置,redis的主从配置方法详解
  • redis界面工具,mac安装redis可视化工具
  • redis界面工具,mac安装redis可视化工具,推荐几款 Redis 可视化工具(太厉害了)
  • redis正确使用的十个技巧是什么,redis正确使用的十个技巧有哪些
  • 留言与评论(共有 条评论)
       
    验证码: