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服务器,并一次性返回所有命令结果的技术。管道可以减少客户端与服务器之间的通信次数,从而提高命令的执行效率。

相关推荐
FYKJ_20101 小时前
springboot助农产品销售商城05829-计算机课程设计、毕业设计
java·spring boot·python·mysql·spark·django
user_admin_god3 小时前
第 10 篇:拼上下文与生成——预算、边界与防幻觉
java·人工智能·spring boot·语言模型
用户3126874877203 小时前
GC 算法与垃圾收集器演进:从 Serial 到 ZGC
java
天天被压力4 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #02】涨停跌停与特色股池:5类股池接口一次拉全
java·人工智能·python
斯维赤4 小时前
从 @Tool 到 Agent 流水线:LangChain4j 进阶教学,一个库打全套
java·后端
SimonKing4 小时前
SSE项目`nexus-sse`持续优化,不一样的视觉效果
java·后端·程序员
斑鸠喳喳4 小时前
读写锁模式 Read-Write Lock
java·后端
信誓旦旦的程序猿5 小时前
【Python 量化取数指南 #09】Python 拿港股通数据:港股通成交与港股财报实测
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
小程序设计5 小时前
本科毕设避坑|大数据 / 单片机物联网 / 网络工程 / PLC / 机械设计选题与落地心得
java·hive·hadoop·单片机
卓怡学长6 小时前
w206基于SpringBoot的社区团购小程序设计与实现
java·spring boot·spring·intellij-idea