redis

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) 0
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name openlab
OK
127.0.0.1:6379> get name
"openlab"
127.0.0.1:6379> type name
string
127.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 redis
OK
127.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 redisChat
Reading 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> multi
OK
127.0.0.1:6379> set k1 v1
QUEUED
127.0.0.1:6379> set k2 v2
QUEUED
127.0.0.1:6379> exec
1) OK
2) 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. 不保证原子性
事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值