0.1 源码安装:
1)安装编辑环境
2)下载安装文件
3)解压安装文件
4)进入解压目录
5)编译安装
6)文件介绍
7)启动服务
dnf install -y gcc tcl gcc-c++ make
wget http://download.redis.io/releases/redis-8.0.0.tar.gz
tar -zxvf redis-8.0.0.tar.gz
cd redis-8.0.0
make && make install
主要的几个命令说明如下:
- redis-server:它是 redis 的服务端启动脚本
- redis-cli:它是 redis 提供的客户端启动脚本
- redis-sentinel:它是 redis 提供的哨兵启动脚本
- redis-benchmark:性能测试工具,可以在自己电脑上运行来查看性能
- redis-check-aof:修复有问题的AOF文件
- redis-check-dump:修复有问题的dump.rdb文件8)验证服务
9)关闭服务
10)编写服务文件
0.2 Docker安装
1)创建挂载目录
2)创建配置文件
# 1. 前台启动
redis-server
# 2. 后台启动
cp /usr/local/redis/redis.conf /etc/
vim /etc/redis.conf # 修改daemonize no
redis-server /etc/redis.conf
redis-cli -p 6379
127.0.0.1:6379> ping
PONG
redis-cli shutdown
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis-8.0.0/bin/redis-server
/etc/redis/redis.conf
ExecStop=/usr/local/redis-8.0.0/bin/redis-cli shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
mkdir -p /opt/redis/{data,conf}
号
命令语法
描述
1
DEL key
该命令用于在 key 存在时删除 key
2
DUMP key
序列化给定 key ,并返回被序列化的值
3
EXISTS key
检查给定 key 是否存在,存在返回1,否则返回0
4
EXPIRE key seconds
为给定 key 设置过期时间,以秒计
5
EXPIREAT key timestamp
EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设
置过期时间。不同在于 EXPIREAT 命令接受的时间参
数是 UNIX 时间戳
6
PEXPIRE key milliseconds
设置 key 的过期时间以毫秒计
文件内容如下:
3)创建容器
1. 数据类型
1.1 Key操作
1.1.1 相关命令
vim /opt/redis/conf/redis.conf
appendonly yes # 开启aof持久化
requirepass 123456 # 指定密码
docker run -p 6379:6379 \
--name redis \
-v /opt/redis/data:/data \
-v /opt/redis/conf/redis.conf:/etc/redis/redis.conf \
-d harbor.registry.com/library/redis:8.0.0 \
redis-server /etc/redis/redis.conf
1.数据类型
1.1Key操作
1.1.1相关命令


1.1.2示例演示
zz
127.0.0.1:6379> dbsize(integer) 0127.0.0.1:6379> keys *(empty array)127.0.0.1:6379> set name openlabOK127.0.0.1:6379> get name"openlab"127.0.0.1:6379> type namestring127.0.0.1:6379> EXISTS name(integer) 1
1.2 String
String 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对
应一个 value。
String 类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序
列化的对象。
String 类型是 Redis 最基本的数据类型,String 类型的值最大能存储 512MB
1.2.1 结构图以及相关命令
127.0.0.1:6379> SET name redisOK127.0.0.1:6379> GET name"redis"# 如果值是中文,则需要在连接客户端是指定规则./redis-cli -p 6379 --raw
1.3发布与订阅
1.3.1简介
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接
收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 ,以及订阅这个
频道的三个客户端 —— client1 、client2 和 client3 之间的关系:

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三
个客户端

1.4常用命令

1.4.1示例演示
127.0.0.1:6379> SUBSCRIBE redisChatReading messages... (press Ctrl-C to quit)1) "subscribe"2) "redisChat"3) (integer) 1
2. 事务管理
2.1 事务定义
Redis 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执
行的过程中,不会被其他客户端发送来的命令请求所打断。
Redis 事务的主要作用就是串联多个命令防止别的命令插队。
2.2 Multi、Exec、discard
从输入 Multi 命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入 Exec
后,Redis 会将之前的命令队列中的命令依次执行。
组队的过程中可以通过 discard 来放弃组队。

)组队成功,提交成功的情况:
127.0.0.1:6379> multiOK127.0.0.1:6379> set k1 v1QUEUED127.0.0.1:6379> set k2 v2QUEUED127.0.0.1:6379> exec1) OK2) OK
2)组队阶段报错,提交失败的情况:
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k3 v3
QUEUED
127.0.0.1:6379> set k4
(error) ERR wrong number of arguments for 'set' command
127.0.0.1:6379> set k5 v5
QUEUED
127.0.0.1:6379> exec
1) (error) EXECABORT Transaction discarded because of previous errors.
2.2 事务的冲突问题
2.2.1 事务场景

2.2.2:悲观锁

2.2.3乐观锁

3:事务三特性
Redis 的事务有以下三个特性:
1. 单独的隔离操作
事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端
发送来的命令请求所打断。
2. 没有隔离级别的概念
队列中的命令没有提交之前都不会实际被执行,因为事务提交前任何指令都不会被实际执
行。
3. 不保证原子性
事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。
229

被折叠的 条评论
为什么被折叠?



