Linux学习之Redis使用

2023-09-18 11:31:30

搭建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"

更多推荐

看盘也要学?伦敦金看盘技巧

看盘是伦敦金投资的基础,没有好的看看技巧,不能盯住市场价格的变化,我们就没办法在市场出现机会的时候就入场,也就是说,我们会错过好的交易机会,最终导致自己的交易不能盈利,甚至发生亏损。下面我们就来讨论一下如何在伦敦市场中学习看弹的技巧。当市场出现大量买入,出现大阳线的时候,很可能是有市场的资金出场。我们会观察到,市场会出

SpringTask任务调度和声明式事务配置

是哪段话激励着你不断向前摆脱逆境?一,SpringTaskxml写法SpringTask已经纳入到spring核心技术里面了,直接导入spring的上下文坐标就好了<dependencies><dependency><groupId>org.springframework</groupId><artifactId>sp

生产发版前准备【经验分享给萌新程序员】

经验分享自从当了码农,已经不知道有多少个日日夜夜熬夜到凌晨三四点了。不知道大家有没有想过,生产上线发布新版本到凌晨三、四点都有可能是哪些原因呢?下面我将分享下自己以前跟进生产版本发布的经验,经验丰富的老前辈们肯定都比我清楚(可忽略此篇文章~哈哈~)。这篇文章可能更适合萌新程序员体质。争取不熬夜工作(只能熬夜玩乐,不能熬

kafka ack确认机制

Kafka使用ACK(Acknowledgment)确认机制来确保消息在生产者和消费者之间的可靠传递。这个机制确保消息在被认为已成功发送或处理之前不会被丢失。Kafka的ACK确认机制有三个级别:acks=0:这是最快速的确认级别,也是最不可靠的。生产者发送消息后不会等待任何确认,直接将消息添加到分区的副本中,并认为消

汽车电子系统总线LIN通信协议精要

汽车电子系统总线LIN通信协议精要文章目录汽车电子系统总线LIN通信协议精要简介LIN信号的物理层LIN总线收发器LIN通信协议LIN的主机和从机LIN报文帧结构同步间隔段(Breakfield)同步段(Syncfield)受保护的帧ID(ProtectedIdentifierfield)应答数据段(Datafield

从零开始:使用 Kubernetes 部署 Nginx 应用

[root@icv-k8s-node-1~]#kubectlcreatedeploymentjavaedge-nginx--image=nginx:1.24.0deployment.apps/javaedge-nginxcreated[root@icv-k8s-node-1~]#kubectlgetallNAMEREA

内网穿透的应用-NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录摘要1.环境搭建2.测试局域网访问3.内网穿透3.1ubuntu本地安装cpolar3.2创建隧道3.3测试公网访问4配置固定http公网地址4.1保留一个二级子域名4.1配置固定二级子域名4.3测试访问公网固定二级子域名摘要Nextcloud,它是ownCloud的一个分支,是一个文件共享服务器,允许您将个人

月木学途开发 5.轮播图模块

概述效果图数据库设计轮播图表DROPTABLEIFEXISTS`banner`;CREATETABLE`banner`(`bannerId`int(11)NOTNULLAUTO_INCREMENT,`bannerUrl`longtext,`bannerDesc`varchar(255)DEFAULTNULL,`bann

十天学完基础数据结构-第一天(绪论)

1.数据结构的研究内容数据结构的研究主要包括以下核心内容和目标:存储和组织数据:数据结构研究如何高效地存储和组织数据,以便于访问和操作。这包括了在内存或磁盘上的数据存储方式,如何将数据元素组织成有序或无序的集合,以及如何表示复杂的数据关系。数据的操作和处理:数据结构不仅关注数据的存储,还关注如何对数据进行各种操作,如插

并发编程——ScheduledThreadPoolExecutor

文章目录ScheduledThreadPoolExecutor介绍ScheduledFutureTask四种方法执行任务execute方法schedule方法scheduleAtFixedRate和scheduleWithFixedDelay分析ScheduledThreadPoolExecutor介绍Schedule

力扣刷题(简单篇):两数之和、两数相加、无重复字符的最长子串

坚持就是胜利一、两数之和题目链接:https://leetcode.cn/problems/two-sum/给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你

热文推荐