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

相关推荐
Gavin在路上21 小时前
架构设计之COLA架构
java·数据库·架构
MediaTea21 小时前
Python 库手册:gc 垃圾回收
java·开发语言·jvm·python·算法
碎像21 小时前
阿里云 ARMS 应用实时监控服务
java·阿里云·云计算
l***914721 小时前
常见的 Spring 项目目录结构
java·后端·spring
j***121521 小时前
java进阶1——JVM
java·开发语言·jvm
f***R81 天前
HeidiSQL导入与导出数据
java
q***71011 天前
Spring Boot(快速上手)
java·spring boot·后端
better_liang1 天前
每日Java面试场景题知识点之-分布式事务处理
java·微服务·面试·springcloud·分布式事务
L***d6701 天前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot
凌波粒1 天前
Springboot基础教程(3)--自动装配原理/静态资源处理/欢迎页
java·spring boot·后端