基本介绍
Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统(in-memory data structure store),
它可以用作数据库、缓存和消息中间件。
它支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,
提供了丰富的操作命令。
Redis的设计目标是快速、高效地处理大量数据,并具备持久化能力。
主要特性和功能
内存存储:Redis将数据存储在内存中,这使得它具有极高的读写性能。
高性能:使用了高效的数据结构和算法,使得在处理大量数据时能够保持高性能。
持久化选项:可以将内存中的数据定期写入磁盘,以便在服务器重启时恢复数据。两种持久化方式:快照(snapshotting)和日志(append-only file)。 快照方式可以定期将内存中的数据写入磁盘,而日志方式则可以将每个写操作追加到文件中,以便在重启时重新执行这些操作。
多种数据结构:Redis支持多种数据结构,包括字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等。 每种数据结构都有对应的操作命令,可以方便地对数据进行增删改查操作。
发布/订阅:Redis提供了发布/订阅功能,可以用作简单的消息中间件。客户端可以订阅一个或多个频道,当发布者发布新消息到被订阅的频道时,客户端会接收到相应的消息。
事务支持:Redis支持事务操作,可以将一系列命令组合成一个原子操作。在事务执行期间,其他客户端不能对相关数据进行修改,保证了数据的一致性。
分布式支持:Redis可以用作分布式缓存,可以通过多个Redis实例构建缓存集群,以提高可扩展性和容错性。通过分片、复制和故障转移等机制,Redis可以在大规模访问下保持高可用性。
客户端库支持:Redis支持多种编程语言的客户端库,如Java、Python、C#等,方便开发者进行与 Redis 的交互。
Redis被广泛应用于各种场景,如Web应用的缓存层、消息队列系统、实时排行榜、实时分析系统等。简单,高效,功能丰富。
安装
这里记录从软件源直接下载安装,不从源码编译安装。
如果是在最小化系统中,如docker环境中安装,需要安装一些依赖。
1
sudo apt install lsb-release curl gpg
debian发行版直接安装。
1
sudo apt install redis
官方推荐了自己的软件仓库,可以使用官方的软件包仓库。
1
2
3
4
5
6
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis
用户接口
Redis提供了两个用户接口,分别是”Redis CLI”和”RedisInsight”。它们都是用于与Redis进行交互和管理的工具,一个是命令行交互工具,一个是图形界面交互工具。 这是需要知道的。可根据具体需求选择使用。
Redis CLI(命令行界面)
Redis CLI是Redis官方提供的命令行界面工具,它允许用户通过终端输入命令与Redis进行交互。Redis CLI提供了一系列命令,用于执行各种Redis操作, 如设置键值对、获取值、执行事务、订阅/发布消息等。Redis CLI是通过文本协议与Redis服务器进行通信,并将结果以文本形式返回给用户。 可以使用Redis CLI来执行单个命令或批量命令,并通过脚本编写复杂的操作序列。
Redis CLI的优点包括:
- 简单易用:Redis CLI提供了直接的命令行界面,可以通过键入命令和参数来与Redis进行交互。
- 强大的命令支持:Redis CLI支持Redis的所有命令,包括数据操作、事务、发布/订阅、服务器管理等。
- 跨平台支持:Redis CLI可以在各种操作系统上运行,包括Linux、Windows和macOS。
使用Redis CLI,在终端中输入redis-cli
命令即可,它将连接到本地Redis服务器(默认主机和端口)。可以在终端中输入命令与Redis进行交互。方便学习和开发。
RedisInsight(图形用户界面)
RedisInsight是Redis官方提供的图形用户界面(GUI)工具,用于可视化地管理和监控Redis数据库。RedisInsight提供了一个直观的用户界面, 通过图形化的方式展示Redis的各种信息和操作。它可以连接到本地或远程的Redis服务器,并提供了丰富的功能,如数据浏览、实时监控、性能分析、执行命令等。 RedisInsight是一个跨平台的应用程序,可在Windows、macOS和Linux上运行。可以从Redis官方网站下载安装对应操作系统的RedisInsight版本。
RedisInsight具有以下主要功能:
- 连接管理:RedisInsight允许你通过简单的配置添加和管理多个Redis实例的连接。
- 数据管理:它提供了一个直观的界面来查看和编辑Redis中的键值对、哈希表、列表、集合、有序集合等数据结构。
- 命令执行:可以在RedisInsight中执行各种Redis命令,并查看执行结果。
- 实时监控:RedisInsight提供了实时监控Redis实例的性能指标,如内存使用、命中率、连接数等。你可以轻松地查看和分析这些指标,并进行故障排查和性能优化。
- 慢查询分析:它可以帮助用户识别和分析Redis中的慢查询,并提供可视化的方式来理解和优化这些查询。
- 安全管理:RedisInsight提供了用户认证和访问控制的功能,可以保护Redis实例的安全性。
关于redis-server
redis的主体是redis-server
,用户的redis-cli
及RedisInsight
都是客户端程序连接到redis-server
交互的。 redis-server
的服务文件:/lib/systemd/system/redis-server.service
。
主要关心它的启动配置文件(ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
)
其默认配置文件位于 /etc/redis/redis.conf
,其中定义了redis-sever使用的默认端口号为6379
,需要知晓。
另外,可以直接修改配置文件,redis-cli也提供了命令CONFIG
在运行中修改,CONFIG GET *
可以查看所有配置。