redis安装与基本操作

一、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)

二、源码安装最新

官网:https://redis.io/

file

file

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情况下机器的负载陡增

file

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"

file

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 青浦区尚茂路798弄 联系方式-13697081366