Linux学习之Redis使用

本文详细介绍了如何在Linux主机上安装、配置Redis服务,包括启动、修改配置、连接验证以及常用命令。同时展示了如何在PHP环境中集成Redis,实现数据存储和操作。

搭建Redis服务器

在主机redis64运行redis服务
#安装redis服务
[root@redis64 ~]# yum install -y redis
# 启动redis服务并开机启动
[root@redis64 ~]# systemctl enable redis --now
# 查看redis端口
[root@redis64 ~]# ss -tnlp | grep redis-server
LISTEN 0      128        127.0.0.1:6379      0.0.0.0:*    users:(("redis-server",pid=1114,fd=6))
# 通过redis-cli连接redis服务
[root@redis64 ~]# redis-cli
127.0.0.1:6379> ping         # 检查能否正在访问
PONG
127.0.0.1:6379> set school nsd2306        # 存储变量
OK
127.0.0.1:6379> get school             # 查看变量 
"nsd2306"
127.0.0.1:6379> exit
修改服务运行参数
# 停止redis服务
[root@redis64 ~]# systemctl stop redis
# 修改redis配置文件 
bind 192.168.88.64
port 6364
requirepass tye      # 执行命令前需要先认证才可以执行
# 启动redis服务,查看端口
[root@redis64 ~]# ss -tnlp | grep redis-server
LISTEN 0      128    192.168.88.64:6364      0.0.0.0:*    users:(("redis-server",pid=1183,fd=6))
# 连接,通过认证才可以执行命令
[root@redis64 ~]# redis-cli  -h 192.168.88.64 -p 6364
192.168.88.64:6364> ping
(error) NOAUTH Authentication required.
192.168.88.64:6364> auth tye
OK
192.168.88.64:6364> ping
PONG
192.168.88.64:6364> keys *
1) "school"
192.168.88.64:6364> get school
"nsd2306"
常用命令
- mset mget keys type
- exists ttl expire move select
- del flushdb flushall

# 通过服务器地址和端口连接
[root@redis64 ~]# redis-cli -h 192.168.88.64 -p 6364
192.168.88.64:6364> mset name plj age 80 class nsd2023
OK
192.168.88.64:6364> keys *
1) "school"
2) "age"
3) "name"
4) "class"
192.168.88.64:6364> mget name age
1) "plj"
2) "80"
# keys使用通配符查看变量
	* 匹配所有变量名
	? 一个字符
192.168.88.64:6364> keys *
1) "school"
2) "age"
3) "name"
4) "class"
192.168.88.64:6364> keys p?
(empty list or set)
192.168.88.64:6364> keys a??
1) "age"
# select 切换库 默认库编号 0-15[默认为0号库] 
192.168.88.64:6364> select 1
OK
192.168.88.64:6364[1]> select 16
(error) ERR DB index is out of range
192.168.88.64:6364[1]> select 15
OK
# move 命令 移动变量到其他库里
192.168.88.64:6364> move age 1
(integer) 1
192.168.88.64:6364> keys *
1) "school"
2) "name"
3) "class"
192.168.88.64:6364> select 1
OK
192.168.88.64:6364[1]> keys *
1) "age"

# exists 检查变量是否存储  返回值1  变量存储 返回值是0 变量不存在
192.168.88.64:6364> exists name
(integer) 1
192.168.88.64:6364> get name
"plj"
192.168.88.64:6364> set name bob
OK
192.168.88.64:6364> get name
"bob"
# EXPIRE 命令设置变量的过期时间 不设置变量永不过期
# ttl   检查变量可以在内存里存多久
192.168.88.64:6364> set sex girl
OK
192.168.88.64:6364> ttl sex
(integer) -1	# -1表示永不过期
192.168.88.64:6364> expire sex 15    # 过期时间15秒
(integer) 1
192.168.88.64:6364> ttl sex
(integer) 10
192.168.88.64:6364> ttl sex
(integer) 5
192.168.88.64:6364> ttl sex
(integer) -2				# 表示已经过期被删除
192.168.88.64:6364> keys sex
(empty list or set)
# type 命令检查变量存储数据的类型  
# 使用set  mset命令存储的数据都字符类型。
# 数据的类型不同 管理的命令也不同 
192.168.88.64:6364> set x 99
OK
192.168.88.64:6364> mset y 108
OK
192.168.88.64:6364> type x
string
192.168.88.64:6364> type y
string
192.168.88.64:6364> lpush tea nb wk zzg plj lx
(integer) 5
192.168.88.64:6364> type tea
list
# del 删除内存里的变量
192.168.88.64:6364> keys *
1) "tea"
2) "x"
3) "class"
4) "school"
5) "name"
6) "y"
192.168.88.64:6364> del x y
(integer) 2
192.168.88.64:6364> keys *
1) "tea"
2) "class"
3) "school"
4) "name"
# flushdb  删除当前所在库的所有数据
192.168.88.64:6364> keys *
1) "tea"
2) "class"
3) "school"
4) "name"
192.168.88.64:6364> flushdb
OK
192.168.88.64:6364> keys *
(empty list or set)
192.168.88.64:6364> select 1
OK
192.168.88.64:6364[1]> keys *
1) "age"
# 删除内存里所有内存里所有数据(慎用)
192.168.88.64:6364[1]> flushall
OK
192.168.88.64:6364[1]> keys *
(empty list or set)
部署LNP+Redis
1.在主机192.168.88.64部署LNP 环境
2.配置PHP支持redis
3.编写网站脚本,把数据存储到本机的内存里
# 编译安装nginx,先安装依赖
[root@redis64 ~]# yum install -y gcc pcre-devel zlib-devel make
[root@redis64 ~]# tar xf nginx-1.22.1.tar.gz 
[root@redis64 nginx-1.22.1]# ./configure
[root@redis64 nginx-1.22.1]# make && make install
[root@redis64 nginx-1.22.1]# ls /usr/local/nginx
conf  html  logs  sbin
# 安装php所需软件包
[root@redis64 nginx-1.22.1]# yum install -y php php-fpm php-devel
# 配置动静分离,修改nginx配置文件
 65         location ~ \.php$ {
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 70             include        fastcgi.conf;
 71         }
 [root@redis64 nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
[root@redis64 nginx-1.22.1]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@redis64 nginx-1.22.1]# /usr/local/nginx/sbin/nginx
[root@redis64 nginx-1.22.1]# ss -tnlp | grep 80
LISTEN 0      128          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=7679,fd=6),("nginx",pid=7678,fd=6))
# 启动php-fpm服务
[root@redis64 nginx-1.22.1]# vim /etc/php-fpm.d/www.conf 
listen = 127.0.0.1:9000  # 非sock方式运行 
[root@redis64 nginx-1.22.1]# systemctl enable php-fpm --now
Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
[root@redis64 nginx-1.22.1]# ss -tnlp | grep 9000
LISTEN 0      128        127.0.0.1:9000      0.0.0.0:*    users:(("php-fpm",pid=7751,fd=8),("php-fpm",pid=7750,fd=8),("php-fpm",pid=7749,fd=8),("php-fpm",pid=7748,fd=8),("php-fpm",pid=7747,fd=8),("php-fpm",pid=7746,fd=6))
# 测试php配置
[root@redis64 nginx-1.22.1]# vim /usr/local/nginx/html/test.php
<?php
  phpinfo();
?>

在这里插入图片描述

# 配置PHP支持redis
# 1.安装软件提供模块 --with-php-config=/usr/bin/php-config获取版本信息
[root@redis64 ~]# tar xf redis-cluster-4.3.0.tgz 
[root@redis64 pub]# cd redis-4.3.0/ 进源码目录
[root@redis64 redis-4.3.0]# phpize  获取php版本信息
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718
[root@redis64 redis-4.3.0]# ./configure --with-php-config=/usr/bin/php-config
[root@redis64 redis-4.3.0]# make && make install       # 编译安装
# 2.调用模块
[root@redis64 redis-4.3.0]# vim /etc/php.ini 
extension_dir = "/usr/lib64/php/modules/"
extension = "redis.so"
# 3.加载模块
[root@redis64 redis-4.3.0]# systemctl restart php-fpm
# 4.查看模块
[root@redis64 redis-4.3.0]# php -m | grep redis
redis

# 编写网站脚本,把数据存储到本机的内存里
# 1.允许通过lo口连接本机redis服务
[root@redis64 redis-4.3.0]# systemctl stop redis
[root@redis64 redis-4.3.0]# vim /etc/redis.conf
bind 127.0.0.1 192.168.88.64
[root@redis64 redis-4.3.0]# systemctl start redis
[root@redis64 redis-4.3.0]# ss -tnlp | grep redis
LISTEN 0      128    192.168.88.64:6364      0.0.0.0:*    users:(("redis-server",pid=10067,fd=7))                
LISTEN 0      128        127.0.0.1:6364      0.0.0.0:*    users:(("redis-server",pid=10067,fd=6)) 
# 2.编写php脚本
[root@redis64 redis-4.3.0]# vim /usr/local/nginx/html/redis.php
<?php
$redis = new redis();
$redis->connect("127.0.0.1", "6364");
$redis->auth("tarenaplj");
$redis->set("class","nsd");
echo "save ok\n";
?>
# 3.访问脚本
通过浏览器访问:http://192.168.88.64/redis.php
save ok
# 4.连接redis查看变量
[root@redis64 redis-4.3.0]# redis-cli -h 192.168.88.64 -p 6364
192.168.88.64:6364> keys *
1) "class"
192.168.88.64:6364> get class
"nsd2023"

<think>好的,我现在需要帮助用户找到在Linux使用Redis的指南。首先,用户的问题是关于如何在Linux使用Redis的教程,我需要结合提供的引用内容来回答。 首先,查看用户提供的引用内容。引用[1]提到在CentOS 7/RHEL 7上安装Redis服务器,并测试安装的命令是`redis-cli ping`。引用[2]是关于安装和使用Redis,提到安装完成后会进入Redis提示符`redis 127.0.0.1:6379>`。引用[3]则涉及启动Redis服务并检查运行状态,命令如`redis-server redis.conf`。 接下来,我需要整合这些信息,形成一个结构清晰的指南。用户需要的是使用教程,所以应该包括安装、启动、基本操作和验证步骤。可能还需要包括配置文件和持久化的内容,因为引用[3]提到了配置文件的使用。 需要注意的是,用户可能不熟悉Linux命令,所以步骤要详细。同时,确保所有命令和路径正确,比如配置文件的位置和启动命令。此外,引用中提到的测试命令`redis-cli ping`和进入Redis CLI的步骤也很重要,需要包含在教程中。 另外,要考虑用户可能遇到的问题,比如服务启动失败或配置错误,可能需要简单的故障排除提示。不过,引用中没有提供相关的内容,所以可能不需要深入,但可以建议查看日志文件。 最后,生成相关问题,帮助用户进一步学习,比如性能优化、配置选项或安全设置,这些是基于现有信息的合理扩展。 总结步骤: 1. 安装Redis使用包管理器安装。 2. 启动服务:直接运行或使用配置文件启动。 3. 验证安装:使用ping命令和CLI操作。 4. 基本使用:设置键值对,持久化配置。 5. 关闭服务:正确停止Redis。 确保每个步骤都有对应的引用支持,并在适当的位置添加引用标识。例如,安装步骤引用[1],启动和验证引用[2]和[3]。 现在,将这些内容用中文组织成用户友好的指南,保持结构清晰,语言简洁,并附上相关问题。</think>以下是在Linux系统上使用Redis的详细指南,整合了安装、配置和基础操作的关键步骤: ### 一、安装Redis 1. **通过包管理器安装** ```bash sudo apt-get update # Ubuntu/Debian sudo apt-get install redis-server # 或针对CentOS/RHEL系统 sudo yum install epel-release sudo yum install redis ``` 安装后自动创建服务单元,可通过`systemctl status redis`验证[^1]。 ### 二、启动与验证 2. **启动Redis服务** ```bash sudo systemctl start redis # 系统服务方式启动 redis-server /path/redis.conf # 指定配置文件启动[^3] ``` 多节点部署时需为每个实例单独配置文件和启动: ```bash mkdir -p 700{1..3} redis-server 7001/redis.conf redis-server 7002/redis.conf # 每个端口对应独立配置[^3] ``` 3. **验证服务状态** ```bash redis-cli ping # 应返回"PONG"[^1] redis-cli # 进入交互式命令行[^2] 127.0.0.1:6379> INFO server # 查看服务器信息 ``` ### 三、基础操作 4. **数据操作示例** ```bash 127.0.0.1:6379> SET mykey "Hello" 127.0.0.1:6379> GET mykey # 返回"Hello" 127.0.0.1:6379> EXPIRE mykey 60 # 设置60秒过期 ``` 5. **持久化配置** 编辑`/etc/redis/redis.conf`: ```conf save 900 1 # 15分钟至少1个变更时快照 appendonly yes # 启用AOF持久化 ``` ### 四、服务管理 ```bash sudo systemctl stop redis # 停止服务 redis-cli shutdown # 安全关闭 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值