Linux学习之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
<?phpphpinfo();
?>

在这里插入图片描述

# 配置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"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/140285.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PythonWeb服务器(HTTP协议)

一、HTTP协议与实现原理 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一种用于在网络上传输超文本数据的协议。它是Web应用程序通信的基础&#xff0c;通过客户端和服务器之间的请求和响应来传输数据。在HTTP协议中连接客户与服务器的…

网工基础知识——以太网

1972年Bob Metcalfe“以太网之父”被Xerox雇佣为网络专家&#xff0c;Bob Metcalfe 来到Xerox公司的Palo Alto研究中心&#xff08;PARC&#xff09;的第一个任务是把Palo Alto的计算机连接到ARPANET&#xff08;Internet的前身&#xff09;上。1972年底Bob Metcalfe以ALOHA系统…

Day 02 python学习笔记

python运算符 算术运算符 混合运算的优先级&#xff1a; () 高于 ** * / // % 高于 - 赋值运算符 - * / ** a 1 > a 3 > a a 3 其余同理 注意&#xff1a; python没有自增自减 &#xff08;a a a-- --a&#xff09;…

力扣刷题-链表-设计链表

题意&#xff1a; 在链表类中实现这些功能&#xff1a; get(index)&#xff1a;获取链表中第 index 个节点的值。如果索引无效&#xff0c;则返回-1。 addAtHead(val)&#xff1a;在链表的第一个元素之前添加一个值为 val 的节点。插入后&#xff0c;新节点将成为链表的第一个节…

华为OD机考算法题:分积木

目录 题目部分 解读与分析 代码实现 题目部分 题目分积木难度难题目说明Solo和koko是两兄弟&#xff0c;妈妈给了他们一大堆积木&#xff0c;每块积木上都有自己的重量。现在他们想要将这些积木分成两堆。哥哥Solo负责分配&#xff0c;弟弟koko要求两个人获得的积木总重量“…

ImportError: Java package ‘edu‘ not found, requested by alias ‘edu‘

参考issue&#xff1a; https://github.com/ncbi-nlp/NegBio/issues/44 我目前的解决办法 pip uninstall jpype1 -y可以成功运行。

Ubuntu修改静态IP、网关和DNS的方法总结

Ubuntu修改静态IP、网关和DNS的方法总结 ubuntu系统&#xff08;其他debian的衍生版本好像也可以&#xff09;修改静态IP有以下几种方法。&#xff08;搜索总结&#xff0c;可能也不太对&#xff09; /etc/netplan (use) Ubuntu 18.04开始可以使用netplan配置网络&#xff0…

二十五、MySQL事务的四大特性和常见的并发事务问题

1、事务的四大特性 2、常见的并发事务问题 &#xff08;1&#xff09;并发事务问题分类&#xff1a; &#xff08;2&#xff09;脏读&#xff1a; 一个事务正在对一条记录做修改&#xff0c;在这个事务完成并提交前&#xff0c;这条记录的数据就处于不一致的状态&#xff1b;…

HTTP代理反爬虫技术详解

HTTP代理是一种网络技术&#xff0c;它可以将客户端的请求转发到目标服务器&#xff0c;并将服务器的响应返回给客户端。在网络安全领域中&#xff0c;HTTP代理经常被用来反爬虫&#xff0c;以保护网站的正常运营。 HTTP代理反爬虫的原理是通过限制访问者的IP地址、访问频率、U…

【Spark】win10配置IDEA、saprk、hadoop和scala

终于&#xff0c;要对并行计算下手了哈哈哈。 一直讲大数据大数据&#xff0c;我单次数据处理量大概在1t上下&#xff0c;是过亿级的轨迹数据。 用python调用multiprogress编写的代码&#xff0c;用多线程也要一个多月跑完。 我对这个效率不太满意&#xff0c;希望能快一点再快…

python实验2

1、实验题目&#xff1a;个人用户信息注册 模拟用户个人信息注册&#xff0c;需要输入用户个人信息 姓名、性别、年龄、血型、身高、电话 信息&#xff0c;并输出显示。 源代码&#xff1a; print(用户个人信息注册) name input("请输入您的姓名&#xff1a;") sex…

基于微信小程序四六级助手系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言用户微信小程序端的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考论文参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W…

论文阅读_大语言模型_Llama2

英文名称: Llama 2: Open Foundation and Fine-Tuned Chat Models 中文名称: Llama 2&#xff1a;开源的基础模型和微调的聊天模型 文章: http://arxiv.org/abs/2307.09288 代码: https://github.com/facebookresearch/llama 作者: Hugo Touvron 日期: 2023-07-19 引用次数: 11…

Linux下的系统编程——线程同步(十三)

前言&#xff1a; 在多线程编程中&#xff0c;如果多个线程同时访问和修改共享资源&#xff0c;可能会产生竞争条件和数据不一致的问题。同步机制用于协调线程之间的访问和操作&#xff0c;确保数据的正确性和一致性。为了避免多个线程同时访问和操作共享资源导致的问题&#…

云上亚运:所使用的高新技术,你知道吗?

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号&#xff1a;网络豆云计算学堂 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a; 网络豆的主页​​​​​ 目录 前言 一.什么是云上亚运会 二.为什么要使用云…

Redis缓存相关问题

目录 缓存穿透 缓存雪崩 缓存击穿 Redis集群方案 主从复制Replication 哨兵sentinel 高可用介绍 Redis sentinel介绍 Redis sentinel使用 配置sentinel 启动sentinel 测试sentinel Redis内置集群cluster Redis cluster介绍 哈希槽方式分配数据 Redis cluster的…

使用ElementUI完成登入注册的跨域请求提高开发效率

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》​​​​​​​ ⛺️ 生活的理想&#xff0c;为了不断更新自己 ! 目录 ​编辑 1、前言 1.1.什么是ELementUI 2、完成登陆注册前端页面 2.1环境搭建 运行…

八大排序(二)快速排序

一、快速排序的思想 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&#xff1a;任取待排序元素序列中的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两子序列&#xff0c;左子序列中所有元素均小于基准值&#xff0c;右…

MinGW相关错误

1、go编译c报错 cc1.exe: sorry, unimplemented: 64-bit mode not compiled in 参考&#xff1a;BeifangCc go编译c报错 cc1.exe: sorry, unimplemented: 64-bit mode not compiled in 说明当前gcc是32位&#xff0c;无法在当前64位机器上正常工作&#xff0c;需要更新gcc 下载…

2023手把手教授neo4j安装及环境配置

安装包下载&#xff1a; 首先进入Neo4j官网&#xff1a;Neo4j Graph Database & Analytics | Graph Database Management System 在上方选择栏中选择“Products”&#xff0c;在其中选择“Deployment Center”&#xff0c;点击“Download Neo4j to get started” 然后往下…