刘頔

Apr 01, 2023

Redis详解

数据结构

  1. string:是Redis最基本的数据类型,可以存储任何类型的数据,如数字、文本等;
  1. list:是一个有序的字符串列表,可以在列表的两端添加或删除元素,用于实现队列、栈等数据结构;
  1. hash:是一个键值对的散列表,可以进行快速的查找、插入和删除操作,用于存储对象等结构化数据;
  1. set:是一个无序的字符串集合,可以对集合做交、并、差等操作,用于去重、标签等场景;
  1. sorted set:是一个有序的字符串集合,每个集合元素都有一个分数,根据分数可以排序和查找,用于排行榜、权重等场景。
同时,Redis还支持事务、Lua脚本、事件回调等特性,使得其具备更强大的灵活性和可扩展性。
 
 

Redis为什么要做持久化,怎么做持久化,持久化用在什么地方,Redis的RDB和AOF两种持久化方式的区别、优缺点以及如何配置。

因为redis是基于内存的存储,如果不进行数据持久化,服务器一旦崩溃、重启,redis中存储的数据就会丢失,为了避免这种情况的发生,redis提供了两种持久化方式 RDBAOF
RDB是将redis在内存中的数据定期写入磁盘,生成快照文件,在定期生成快照的过程中,Redis会fork出一个子进行来处理,确保不会阻塞主进程,RDB方式的优点在于快速且占用空间小,缺点是可能会丢失最近一次快照之后的数据。
AOF持久化方式是将redis执行的每条命令以追加的方式写入文件,可以通过重放日志文件的方式来恢复数据。AOF方式的优点可以保证数据的完整性,缺点是写入性能较差,且占用空间大。
配置RDB方式持久化的方式可以通过redis.conf文件中的save参数来配置,例如save 900 1表示如果900秒内有至少1个key发生变化,则生成快照文件。配置AOF方式持久化可以通过redis.conf文件中的appendonly参数来启用,并通过appendfsync参数来控制写入日志文件的频率,例如appendfsync everysec表示每秒钟同步一次日志文件。
一般来说,对于需要保证数据的完整性和不丢失数据的场景,可以选择AOF方式。而对于空间和性能要求较高,可以选择RDB方式。如果两种方式都需要,也可以同时启用。

什么是Redis的主从复制?如何搭建和配置?

Redis的主从复制是指将一个Redis服务器(主节点)上的数据自动同步到多个其他Redis服务器(从节点)上的过程。这种复制方式可以提高Redis的可用性和性能,同时也可以在主节点发生故障时,快速切换到从节点进行数据读写,保证系统的高可用性。
搭建和配置Redis的主从复制可以分为以下步骤:
  1. 配置主节点:在主节点上配置redis.conf文件,设置好portbind参数,并设置slaveof no one参数,表示主节点不是从节点的从节点。
  1. 启动主节点:启动配置好的主节点服务。
  1. 配置从节点:在从节点上配置redis.conf文件,设置好port和bind参数,并设置slaveof master_ip master_port参数,其中master_ipmaster_port分别为主节点的IP地址和端口号。
  1. 启动从节点:启动配置好的从节点服务,从节点将自动连接到主节点并进行同步复制。
在配置Redis主从复制时,需要注意以下几点:
  1. 主节点和从节点的版本号应该一致,否则可能会出现数据不兼容的问题。
  1. 主节点和从节点的网络连接应该稳定,并且能够互相访问。
  1. 为了避免主节点和从节点之间的数据传输阻塞主线程,可以将从节点的rdbchecksum参数设置为yes,开启RDB文件校验功能。
  1. 在主节点发生故障时,从节点可以自动切换到主节点,这需要配置好主从节点的自动故障转移机制。
通过以上步骤,可以快速搭建和配置Redis的主从复制,提高Redis的可用性和性能。
 

Redis的发布与订阅功能是什么?有什么用处?

Redis的发布与订阅功能是指一种消息通信模式,通过这种模式可以让订阅者接收到发布者发布的消息。发布者将消息发送到特定的频道,而订阅者可以订阅一个或多个频道来接收消息。
Redis的发布与订阅功能可以用于很多场景,例如:
  1. 实时消息推送:可以用于实现消息推送功能,让订阅者能够实时接收到发布者发布的消息,例如实时聊天室、实时股票价格等。
  1. 分布式系统通信:可以用于不同节点之间的通信,例如在分布式系统中,节点之间需要共享一些信息,可以通过发布与订阅来实现。
  1. 数据更新通知:可以用于数据更新通知,例如当数据库中某些数据发生改变时,可以通过发布与订阅来通知订阅者。
要使用Redis的发布与订阅功能,需要使用以下三个命令:
  1. SUBSCRIBE:用于订阅一个或多个频道。
  1. PUBLISH:用于向指定频道发布消息。
  1. UNSUBSCRIBE:用于取消订阅一个或多个频道。
使用Redis的发布与订阅功能可以轻松实现不同节点之间的消息通信,提高系统的灵活性和可扩展性。同时也可以帮助我们快速实现一些实时的消息推送和数据更新通知等功能。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Copyright © 2025 刘頔

logo