redis使用介绍

Redis(Remote Dictionary Server)是一个开源的、使用内存网络来存储数据、支持多种类型的数据结构(如字符串、哈希、列表、集合、有序集合、位图、HyperLogLog等)的NoSQL数据库。

  1. 数据类型

• 字符串(String):Redis最基本的类型,可以存储任何形式的字符串,包括二进制数据。支持的操作包括设置值(SET)、获取值(GET)、追加值(APPEND)等。

• 哈希(Hash):一个键值对的集合,其中键和值都是字符串类型。哈希特别适合存储对象,比如用户信息(用户名、密码、年龄等)。

• 列表(List):一个有序的字符串列表,可以支持从两端进行插入和弹出操作。列表可以作为栈(LPUSH/LPOP)、队列(LPUSH/RPOP)或双端队列(LPUSH/RPUSH等)来使用。

• 集合(Set):一个无序的字符串集合,支持集合的并集、交集、差集等操作。集合中的元素是唯一的,不允许重复。

• 有序集合(Sorted Set):与集合类似,但每个元素都会关联一个分数(score),元素按分数从小到大排序。有序集合可以用来实现排行榜等功能。

• 位图(Bitmaps):位图不是一种独立的数据类型,而是基于字符串实现的位操作集合。位图可以用来高效地存储和操作大量的布尔值(0或1)。

• HyperLogLog:一种用于基数估计的概率数据结构,适用于统计独立元素的数量,比如网站的独立访客数。HyperLogLog在牺牲一定精度的情况下,能够使用极少的内存来存储大量的数据。

  1. 数据持久化

• RDB(Redis Database):通过创建快照的方式来实现数据的持久化。RDB文件是一个经过压缩的二进制文件,可以定期地将内存中的数据快照写入磁盘。

• AOF(Append Only File):通过记录每次写操作来实现数据的持久化。AOF文件是一个文本文件,包含了所有对数据库进行的写操作,当Redis重启时,可以通过重新执行这些操作来恢复数据。

  1. 复制与集群

• 主从复制:Redis支持主从复制,主节点负责处理写操作,从节点负责处理读操作,从而实现读写分离和负载均衡。从节点还可以作为主节点的备份,在主节点故障时提供故障转移。

• 哨兵(Sentinel):哨兵是一个独立的进程,用于监控Redis主从服务器,并在主节点故障时自动进行故障转移,保证系统的高可用性。

• 集群(Cluster):Redis集群允许将数据分散存储在多个节点上,每个节点都是一个Redis服务器。集群提供了自动分片(sharding)和故障转移的功能,能够自动地将数据分配到不同的节点上,并在节点故障时自动进行数据的迁移和恢复。

  1. 事务与Lua脚本

• 事务:Redis支持简单的事务操作,通过MULTI、EXEC、DISCARD和WATCH等命令来实现。事务中的所有命令都会被序列化,并按照它们在事务中的顺序依次执行。

• Lua脚本:Redis支持使用Lua语言编写脚本,这些脚本可以在Redis服务器上直接运行。Lua脚本可以看作是Redis事务的一种扩展,它允许在单个命令中执行多个操作,并且这些操作是原子性的。

  1. 管道(Pipeline)

管道是一种可以将多个命令打包发送到Redis服务器,并一次性返回所有命令结果的技术。管道可以减少客户端与服务器之间的通信次数,从而提高命令的执行效率。

相关推荐
2601_962066492 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
yaoxin5211233 小时前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F3 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
2601_962072214 小时前
SpringMVC进阶(自定义拦截器以及异常处理)
java
2601_962073815 小时前
Spring全面详解(基础版)
java·后端·spring
谢亮_vipxieliang6 小时前
ValidX分组验证详解:不同场景使用不同验证规则
java·spring boot·后端·spring cloud·eclipse·hibernate
wuminyu6 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
pnoker7 小时前
IoT DC3 AI 能力:Agentic Center 的设计与边界
java·人工智能·物联网·大模型·spring ai
xiaoqiMikko7 小时前
一条 CVSS 9.0 的 RCE,advisory 里没写修复版是哪个 —— fastjson 16723 的字段考古
java·安全
程序员贺加贝7 小时前
一次 SaaS ERP 主数据生命周期设计:Policy、PreCheck 与结构化阻断原因
java·后端·架构·saas