REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

安装与配置

windows https://github.com/tporadowski/redis/releases

linux http://redis.io/download

sudo apt update
sudo apt install redis-server

# 启动 Redis
redis-server

# 查看 redis 是否启动?
redis-cli
redis-cli -h host -p port -a password

或者源码编译

wget <http://download.redis.io/releases/redis-6.0.8.tar.gz>
tar xzf redis-6.0.8.tar.gz
cd redis-6.0.8
make

配置在安装目录下的 redis.conf 文件,或者在命令行里改

CONFIG GET CONFIG_SETTING_NAME
CONFIG GET loglevel
CONFIG GET *

CONFIG SET loglevel "notice"

使用

> INFO

序号 命令及描述
1 DEL key该命令用于在 key 存在时删除 key。
2 DUMP key序列化给定 key ,并返回被序列化的值。
3 EXISTS key检查给定 key 是否存在。
4 EXPIRE key seconds为给定 key 设置过期时间,以秒计。
5 EXPIREAT key timestampEXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
6 PEXPIRE key milliseconds设置 key 的过期时间以毫秒计。
7 PEXPIREAT key milliseconds-timestamp设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
8 KEYS pattern查找所有符合给定模式( pattern)的 key 。
9 MOVE key db将当前数据库的 key 移动到给定的数据库 db 当中。
10 PERSIST key移除 key 的过期时间,key 将持久保持。
11 PTTL key以毫秒为单位返回 key 的剩余的过期时间。
12 TTL key以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
13 RANDOMKEY从当前数据库中随机返回一个 key 。
14 RENAME key newkey修改 key 的名称
15 RENAMENX key newkey仅当 newkey 不存在时,将 key 改名为 newkey 。
16 SCAN cursor [MATCH pattern] [COUNT count]迭代数据库中的数据库键。
17 TYPE key返回 key 所储存的值的类型。

发布订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。

Redis 客户端可以订阅任意数量的频道。

# 订阅 runoobChat 频道
SUBSCRIBE runoobChat

# 往 runoobChat 频道发送消息
PUBLISH runoobChat "Redis PUBLISH test"