一、yum安装
[root@db01 tmp]# cat /etc/redhat-release
Rocky Linux release 9.3 (Blue Onyx)
[root@db01 tmp]# yum install redis -y
[root@db01 tmp]# redis-server --version
Redis server v=6.2.7 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=ec192bdd77ecd321
[root@db01 tmp]# systemctl start redis
[root@db01 tmp]#
[root@db01 tmp]# redis-cli
127.0.0.1:6379> keys *
(empty array)
二、源码安装最新
1、下载
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar -xf redis-7.2.4.tar.gz
2、编译安装
# 1、说明:不需要执行./configure
在安装某些软件时,需要先执行./configure脚本来检查系统环境是否满足软件编译和运行的条件、定制好一些参数
然后生成对应的Makefile文件
但是,在安装Redis时,并没有这个步骤,原因在于Redis的源代码分发包中已经预编译了Makefile,
所以我们可以直接处理编译(make)和安装(make install)的步骤。
# 2、多核编译
# make -j4 # 并发4个工作,一般是内核数的两倍
make -j #-j 尽可能多的并发
# 3、编译安装
make PREFIX=/usr/local/redis install
make -j情况下机器的负载陡增
3、添加环境变量
[root@egon /]# vim /etc/profile.d/redis.sh
export PATH=/usr/local/redis/bin:$PATH
4、修改配置文件
# 1、拷贝模版配置
mkdir /usr/local/redis/conf/
cp /root/redis-7.2.4/redis.conf /usr/local/redis/conf/
# 2、修改配置文件
[root@db01 conf]# redis.conf
...
# 1、修改:以守护进程的方式运行
daemonize yes
# 2、修改:0.0.0.0意味着接受任意IP的连接请求。
bind 0.0.0.0
# 3、增加:设置redis的登录密码
requirepass 123
...
5、加入systemd管理
[root@egon /usr/local/redis/conf]# vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 重载
[root@egon /usr/local/redis/conf]# systemctl daemon-reload
6、启动并加入开启自启
systemctl start redis.service
systemctl enable redis.service
7、客户端登录
redis-cli -h 192.168.71.16 -p 6379 -a '123'
或者登录后再用AUTH认证
[root@db01 tmp]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH 123
OK
三、设置密码
# 1、在配置文件中增加配置项进行永久设置
requirepass 123
# 2、或者进入后设置(重启redis后失效)
[root@db01 tmp]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 123
OK
四、基本操作与数据类型了解
基本操作
# 1、查看
keys * # 查看所有,⽣产中禁⽤[可能键值对很多, redis会崩溃, 耗费资源, ⽽且获 取不到信息]
# 2、设置过期时间(通用)
expire 键名 3
# 3、字符也可以这么设置过期时间
set name "egon" ex 5 # 5s后自动删除
# 4、查看过期时间
ttl name # -1永不过期,-2已经过期,5代表剩余5秒过期
# 3、设置过期时间
1、字符串类型
# 1、增
set name "egon"
# 2、查询
get name
2、hash类型,类似python中的字典
# 1、增
hset info name "egon" age 18 gender "male" # 增
# 2、查询
hget info name # 查
hget info age
hget info gender
3、列表数据类型
# 1、增
lpush namelist "egon" "tom" "jack"
lpush namelist "lili"
# 2、查
lrange namelist 0 0 # start为0,stop也为0,代表取0号索引的元素
lrange namelist 0 -1 # 取出所有
4、无序集合set(元素不允许重复,无序)
# 1、增
SADD num 1
SADD num 12 123 1234 12345 123456 1234567
# 2、查询
SMEMBERS num
5、有序集合sortset(元素不允许重复,有序)
# 1、增,语法:ZADD key score1 member1 [score2 member2] 会按照分数排序,分数大的往后排
ZADD names 1 "egon"
ZADD names 2 "tom"
ZADD names 20 "lili"
ZADD names 2 "jack"
ZADD names 3 "lucy"
# 2、查看指定分数区间的元素
127.0.0.1:6379> ZRANGE names 0 -1 # 从0号索引到最后,即查看所有,会发现就是按照分数排序的
1) "egon"
2) "jack"
3) "tom"
4) "lucy"
5) "lili"
127.0.0.1:6379>
6、redis默认16个库0-15, 当前库就是0号, select 0进⼊0号, 每⼀个库都是单独隔离空间
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> SELECT 1
更多其他操作想了解的话见:https://egonlin.com/?p=9934
五、发布订阅
1、订阅:消费者
2、发布:生产者
3、频道:频道最主要的功能是存储发布者发布的信息,然后分别发给每一个消费者。
打开三个窗口,一个窗口为发布者,两个窗口为订阅者。
两个订阅制执行:SUBSCRIBE test,订阅名为test的频道
一个发布者执行:PUBLISH test xxxxxxxxx
PUBLISH test "abc"
PUBLISH test "123"