知乎网站内容建设的逻辑,什么是网络社交,免费建站平台排行榜,大连工业大学一、部署LNMP及redis 1、部署LNMP#xff0c;需要将 tengine-2.2.0.tar.gz 拷贝到虚拟机的 /root 目录下 步骤一#xff1a;安装nginx 源码安装相关软件包 # pcre-devel做正则匹配#xff0c;zlib-devel做数据压缩
[roottemplate ~]# yum -y install gcc pcre-devel zlib-de… 一、部署LNMP及redis 1、部署LNMP需要将 tengine-2.2.0.tar.gz 拷贝到虚拟机的 /root 目录下 步骤一安装nginx 源码安装相关软件包 # pcre-devel做正则匹配zlib-devel做数据压缩
[roottemplate ~]# yum -y install gcc pcre-devel zlib-devel 步骤二解压并编译安装Nginx # 下载并解压
[roottemplate ~]# tar xf tengine-2.2.0.tar.gz -C /usr/local/
[roottemplate ~]# cd /usr/local/tengine-2.2.0/
[roottemplate tengine-2.2.0]# ls
AUTHORS.te CHANGES CHANGES.ru conf contrib html man packages README.markdown tests
auto CHANGES.cn CHANGES.te configure docs LICENSE modules README src THANKS.te# 编译安装
[roottemplate tengine-2.2.0]# ./configure
[roottemplate tengine-2.2.0]# make make install 报错解决 # 安装对应的开发包
[roottemplate tengine-2.2.0]# yum install openssl-devel -y 步骤三安装php相关软件包 [roottemplate tengine-2.2.0]# yum -y install php php-fpm PS在这里不用安装mariadb因为数据不存储在mariadb里面存储到redis里面 步骤四修改配置文件开启php动态页面功能 [roottemplate tengine-2.2.0]# vim /usr/local/tengine-2.2.0/conf/nginx.conf......
# 处理的是php动态网站; ~ 代表匹配 .正则代表任意单个字符需要\进行转义$ 以.php结尾fastcgi_pass 指转发请求 fastcgi_index 指定php默认页面location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}...... 步骤五启动php-fpmnginx服务并查看其端口号 [roottemplate tengine-2.2.0]# systemctl restart php-fpm.service
[roottemplate tengine-2.2.0]# find / -name nginx
/usr/local/tengine-2.2.0/objs/nginx
/usr/local/nginx
/usr/local/nginx/sbin/nginx
[roottemplate tengine-2.2.0]# /usr/local/nginx/sbin/nginx
[roottemplate tengine-2.2.0]# ss -lntup | grep 80
tcp LISTEN 0 128 *:80 *:* users:((nginx,pid49724,fd6),(nginx,pid49723,fd6))
[roottemplate tengine-2.2.0]# ss -lntup | grep 9000
tcp LISTEN 0 128 127.0.0.1:9000 *:* users:((php-fpm,pid47909,fd0),(php-fpm,pid47908,fd0),(php-fpm,pid47907,fd0),(php-fpm,pid47906,fd0),(php-fpm,pid47905,fd0),(php-fpm,pid47904,fd6)) 步骤六测试php配置是否正确 [roottemplate tengine-2.2.0]# vim /usr/local/nginx/html/test.php
?php
echo hello world;
?# 测试
[roottemplate tengine-2.2.0]# curl 192.168.11.10/test.php 2、部署Redis服务 参考上一篇文档https://www.cnblogs.com/sre-chan/p/17324811.html 查看php是否有支持redis的模块 # 查看php已安装支持的模块
[roottemplate tengine-2.2.0]# php -m
# 支持redis的模块不存在php和redis还无法进行数据交互
[roottemplate tengine-2.2.0]# php -m | grep redis 二、部署PHP支持redis 1、安装PHP扩展 安装php支持redis扩展包的依赖 [roottemplate tengine-2.2.0]# yum -y install php php-devel autoconf automake 2、解压php支持redis的扩展源码包 [roottemplate ~]# wget -c https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
[roottemplate phpredis-2.2.4]#tar -xf php-redis-2.2.4.tar.gz -C /usr/locl
[roottemplate phpredis-2.2.4]# cd phpredis-2.2.4/
[roottemplate phpredis-2.2.4]# ls
arrays.markdown config.w32 debian.control mkdeb.sh redis_array.c redis.c serialize.list
common.h COPYING library.c package.xml redis_array.h redis_session.c tests
config.h CREDITS library.h php_redis.h redis_array_impl.c redis_session.h
config.m4 debian mkdeb-apache2.sh README.markdown redis_array_impl.h rpm 3、生成php的配置文件php-config 及 configure命令 [roottemplate phpredis-2.2.4]# phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525 4、使用configue命令进行配置指定php配置文件的路径 [roottemplate phpredis-2.2.4]# ./configure --with-php-config/usr/bin/php-config 5、编译并安装,生成php和redis交互的模块 [roottemplate phpredis-2.2.4]# make make installInstalling shared extensions: /usr/lib64/php/modules/ #模块安装的路径 6、修改php的主配置文件加载php和redis交互的模块 # 查看扩展模块所在目录
[roottemplate phpredis-2.2.4]# ll /usr/lib64/php/modules/
total 4116
-rwxr-xr-x. 1 root root 74688 Apr 1 2020 curl.so
-rwxr-xr-x. 1 root root 2713384 Apr 1 2020 fileinfo.so
-rwxr-xr-x. 1 root root 44704 Apr 1 2020 json.so
-rwxr-xr-x. 1 root root 272016 Apr 1 2020 phar.so
-rwxr-xr-x. 1 root root 1038352 Apr 17 12:22 redis.so
-rwxr-xr-x. 1 root root 58408 Apr 1 2020 zip.so[roottemplate redis-4.0.8]# vim /etc/php.ini........
# 取消注释指定扩展模块所在的目录最后一定要带 /
extension_dir /usr/lib64/php/modules/
# 取消注释修改extension_dir为extension指定具体的模块名redis.so
extension redis.so # 重启服务让php的配置生效
[roottemplate phpredis-2.2.4]# systemctl restart php-fpm.service# 查看php支持redis模块存在
[roottemplate phpredis-2.2.4]# php -m | grep redis
redis 7、测试配置 编写向redis中存数据的php测试脚本 [roottemplate phpredis-2.2.4]# vim /usr/local/nginx/html/set.php
?php$inew redis(); #定义可以使用redis模块的变量$i-connect(127.0.0.1,6379);$i-set(school,tarena);echo data save ok;
? 访问测试执行成功 [roottemplate phpredis-2.2.4]# curl 192.168.11.10/set.php
data save ok 连接redis服务器验证变量是否存入成功 [roottemplate ~]# redis-cli
127.0.0.1:6379 keys *
127.0.0.1:6379 get school
tarena
127.0.0.1:6379 exit 演示通过php页面从redis中取出数据 [roottemplate ~]# vim /usr/local/nginx/html/get.php
?php$inew redis();$i-connect(127.0.0.1,6379);echo $i-get(school);
?
[roottemplate phpredis-2.2.4]# curl 192.168.11.10/get.php #成功 通过php页面向主机的redis中存和取入数据 [rootnode01 ~]# /etc/init.d/redis_6379 start
[rootnode01 ~]# ss -antlp | grep 6350
[roottemplate ~]# vim /usr/local/nginx/html/set50.php
?php$jnew redis();$j-connect(192.168.11.110,6350);$j-auth(123456);$j-set(class,nsd2020);echo $j-get(class);
?
[roottemplate phpredis-2.2.4]# curl 192.168.11.10/set50.php #成功 node01查看 [rootnode01~]# redis-cli -h 192.168.11.110 -p 6350 -a 123456
192.168.11.110:6350 keys *
192.168.11.110:6350 get class
192.168.11.110:6350 exit 三、数据类型值字符 redis服务常用的数据类型 字符列表hash表集合有序集合 在生产环境下数据的存储不需要我们来做是互联网上的用户访问网站存储到redis服务器上面我们需要做的就是对redis上面的数据进行管理 String 字符串node01-192.168.11.110主机操作即可 # 字符串ex|px操作
[rootnode01 ~]# redis-cli -h 192.168.11.110 -p 6350 -a 123456
192.168.11.110:6350 flushall
192.168.11.110:6350 set x 77 #set命令存入x变量
192.168.11.110:6350 type x192.168.11.110:6350 set z 66 ex 20 #存入变量z; ex 指定有效期为20秒
192.168.11.110:6350 ttl z #ttl查看变量z的有效期-1 永久-2 过期被删除192.168.11.110:6350 set i 33 px 20 #存入变量i; px 指定有效期为20毫秒
192.168.11.110:6350 ttl i# 字符串xx|nx操作
192.168.11.110:6350 set k 44 xx #xx变量存在赋值否则不赋值
192.168.11.110:6350 set x 66 xx #赋值成功
192.168.11.110:6350 get x192.168.11.110:6350 set x 88 nx #nx变量不存在赋值存在则不赋值
192.168.11.110:6350 get x #值不发生变化因为变量存在
127.0.0.1:6379 set k 88 nx #赋值成功因为变量不存在
127.0.0.1:6379 get k# setrange字符串替换操作
192.168.11.110:6350 set z ABCDEF
192.168.11.110:6350 get z# setrange命令替换变量z中的值,从下标为0的位置开始替换替换前三个字符为FFF
192.168.11.110:6350 setrange z 0 FFF
192.168.11.110:6350 get z# strlen统计变量的字符长度
192.168.11.110:6350 keys *
192.168.11.110:6350 strlen x # strlen命令查看变量y的字符长度
192.168.11.110:6350 strlen z# append在变量后追加值
192.168.11.110:6350 get x
192.168.11.110:6350 append x 88
192.168.11.110:6350 get x
192.168.11.110:6350 append x2 88 #当变量不存在先创建变量在给变量追加赋值
192.168.11.110:6350 get x2# decr 设置变量值自减
192.168.11.110:6350 set i 3 #存储变量i值为3
192.168.11.110:6350 get i
192.168.11.110:6350 decr i #每次调用decr,都会让变量i的值自减1
192.168.11.110:6350 decr i
192.168.11.110:6350 get i# decrby 设置步长让变量值自减
# get命令查看变量i的值值为-1
192.168.11.110:6350 get i
192.168.11.110:6350 decrby i 2 #设置变量i自减的步长为2每次自减2
192.168.11.110:6350 get i192.168.11.110:6350 decrby i 5
192.168.11.110:6350 get i# getrange key start end
# 返回字串值中的子字串截取范围为start和end
# 负数偏移量表示从末尾开始计数-1 表示最后一个字符-2表示倒数第二个字符# getrange 截取变量中的值
192.168.11.110:6350 keys *
192.168.11.110:6350 get z
# getrange命令截取变量z前四个值下标为 0 ~ 3的值
192.168.11.110:6350 getrange z 0 3
FFFD# getrange命令截取变量z取第二到第四个值下标为 1 ~ 3的值
192.168.11.110:6350 getrange z 1 3
FFD# getrange命令从后向前截取变量z取后三个值下标为 -3 ~ -1的值
# 变量最后一个字符的下标为 -1
192.168.11.110:6350 getrange z -3 -1
DEF# incr key
# 将key的值加1如果key不存在则初始为0后再加1
# 主要应用为计数器# incrby key increment
# 将key的值增加increment
192.168.11.110:6350 set i 99
192.168.11.110:6350 get i192.168.11.110:6350 incr i incr 将key的值每次自加1
192.168.11.110:6350 incr i
192.168.11.110:6350 incr i
192.168.11.110:6350 get i192.168.11.110:6350 get i
192.168.11.110:6350 incrby i 5 #让变量i自加5
192.168.11.110:6350 incrby i 10# incrbyfloat key incremen
# 为key中所储存得值加上浮点数增量 increment
192.168.11.110:6350 incrbyfloat i 10.22