LNMP+Redis非关系型数据库

RDBMS

概述:关系型数据库管理系统,按照预先设置按照预先设置的组织结构,将数据存储在物理介质上,数据之间可以做关联操作

RDBMS软件:

Oracle,   DB2,   MS SQL Server,   MySQL,   MariaDB

 

NOSQL

概述:非关系型数据库,不需预先定义数据存储结构,表的每条记录都可以有不同的类型和结构

服务软件:

1)Redis,    MongoDB,   Memcached  (放内存里,访问速度快)适合用于打折的商品,非永久存储

2)CouchDB,   Neo4j,   FlockDB

 

 

一、部署redis服务[192.168.4.50]

介绍

远程字典服务器

高性能key/values,分布式内存数据库(不同地点不同服务器)

支持数据持久化,定期(或停服务)把内存的数据写进硬盘中

支持list、hash、set、zset数据类型

支持master-slave模式数据备份

网站:www.redis.cn

 

  • 装包

]# tar -xf redis-4.0.8.tar.gz 
]#  cd redis-4.0.8/
]# make

]# make install

]# cd utils/

[root@host50 utils]# ls
build-static-symbols.tcl  create-cluster            hashtable          lru                redis_init_script.tpl     speed-regression.tcl
cluster_fail_time.tcl     generate-command-help.rb  hyperloglog        redis-copy.rb      redis-sha1.rb          whatisdoing.sh
corrupt_rdb.c             graphs                    install_server.sh             redis_init_script             releasetools

  • 初始化配置

[root@host50 utils]#  ./install_server.sh

 一路回车

Port           : 6379           #端口
Config file    : /etc/redis/6379.conf     #主配置文件
Log file       : /var/log/redis_6379.log    #日志
Data dir       : /var/lib/redis/6379            #数据库目录
Executable     : /usr/local/bin/redis-server   
Cli Executable : /usr/local/bin/redis-cli    #命令

 [root@host50 utils]# redis-cli 

127.0.0.1:6379> exit

[root@host50 utils]# netstat -nutlp | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      8748/redis-server 1 

启服务

[root@host50 utils]# /etc/init.d/redis_6379 stop

[root@host50 utils]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused

[root@host50 utils]# /etc/init.d/redis_6379 start
[root@host50 utils]#  ss -nutlp | grep redis

 

存/取数据

 [root@host50 utils]# redis-cli 

127.0.0.1:6379> keys *

127.0.0.1:6379> set  school tarena

127.0.0.1:6379> keys *

1) "school"

127.0.0.1:6379> get school

"tarena"

 

管理数据的基本命令

 

set         存储

get         取值

select 数据库编号0-15(切换库)

keys  * 打印所有变量

key  a? 打印指定变量,?任意一个字符

exists    变量    #测试是否存在

 ttl  变量                #查看生存时间         -1永久   ; -2已过期,自动删除

type  变量            #查看类型    string字符串类型、hash散列类型、list列表类型、set集合类型、有序集合类型

move  变量   库名  #移动变量

expire  变量  10      #设置有效时间10秒

del      变量              #删除变量

flushall                     #删除所有变量

save                        #保存所有变量

shutdown              #关闭redis服务

 

配置选项/etc/redis/6379.conf

  • 数据单位
  • # 1k => 1000 bytes
  • # 1kb => 1024 bytes
  • # 1m => 1000000 bytes
  • # 1mb => 1024*1024 bytes
  • # 1g => 1000000000 bytes
  • # 1gb => 1024*1024*1024 bytes

----------------------------------------------

  • 常用配置选项

port 6379    端口

bind 127.0.0.1  ip地址

tcp-backlog 511  tcp连接总数

timeout 0      连接超时时间

tcp-keepalive 300  长连接时间

daemonize yes    4版本之后默认yes,守护进程方式运行(进程在内存里活跃)no的话有人来访问才从休眠里醒来

databases 16         数据库个数

logfile /var/log/redis_6379.log     

maxclients 10000     并发连接数

dir /var/lib/redis/6379       数据库目录

 

  • 内存管理(清除策略)

volatile-lru    最近最少使用(针对设置里TTL的key)

allkeys-lru    删除最少使用的key

volatile-random  在设置里TTL的key里随机移除

allkeys-random  随机移出除key

volatile-ttl  (minor TTL)   移除最近过期的key   

noeviction     不删除,写满时报错

  • 选项默认设置

maxmemory <bytes>     最大内存

maxmemory-policy noeviction   定义使用策略

maxmemory-samples 5     选取模板数据个数(针对lruttl策略置)


  • 设连接密码

[root@host50 redis]# /etc/init.d/redis_6379 stop

[root@host50 redis]# vim  +501 /etc/redis/6379.conf 

501行 requirepass 123456(密码)

 

[root@host50 redis]# /etc/init.d/redis_6379 start

2种办法登录redis

1)redis-cli -a 123456

2)redis-cli 

127.0.0.1:6379>auth 密码

127.0.0.1:6379>ping

PONG   #成功

 

修改ip,端口,密码都无法用脚本(/etc/init.d/redis_6379 stop)停服务

[root@host50 redis]# vim /etc/redis/6379.conf

 70 bind 192.168.4.50

  93 port 6350

 501 requirepass 123456

 

[root@host50 redis]#  redis-cli -a 123456 shutdown   #强制停

[root@host50 redis]#  /etc/init.d/redis_6379 start

 

[root@host50 redis]#  redis-cli -h 192.168.4.50 -p 6350 -a 123456 shutdown   #停服务

修改脚本使密码改了还能stop停

[root@host50 redis]# vim /etc/init.d/redis_6379 

 36     stop)
.........
 43             $CLIEXEC -h 192.168.4.50 -p 6350 -a 123456 shutdown

.........


[root@host50 redis]# /etc/init.d/redis_6379 start
[root@host50 redis]# /etc/init.d/redis_6379 stop
[root@host50 redis]# ss -nutlp | grep redis
tcp    LISTEN     0      128    192.168.4.50:6350                  *:*                   users:(("redis-server",pid=3622,fd=6))
 

 

排错:看有没有端口、进程

1. /var/run/redis_6379.pid  上次修改前没停服务(改密码脚本停不了,用shutdown),解决:删掉该文件

 

 

二、部署LNMP+Redis[192.168.4.56]

  • 1.LNMP的部署

安装nginx的依赖包pcre-devel zlib-devel gcc

编译安装nginx

]# tar -xf  nginx-1.12.2.tar.gz

]# cd nginx-1.12.2/

]# ./configure

]# make 

]# make install

安装php-fpmphp-devel(yum源没有的软件包) ,php、php-common

]# systemctl start php-fpm

]# netstat -utnlp  | grep  :9000

修改nginx配置文件

]# vim +65 /usr/local/nginx/conf/nginx.conf

location ~ \.php$ {
                        root           html;
                        fastcgi_pass   127.0.0.1:9000;
                        fastcgi_index  index.php;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                        include        fastcgi.conf;
        }

 

[root@host56 nginx]# /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
 

]# /usr/local/nginx/sbin/nginx  

]# netstat -utnlp  | grep  :80

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6587/nginx: master  
编写php脚本测试php是否可用

]# vim /usr/local/ngiinx/html/test.php

<?php

echo "hello boy!!";

?>

curl  http://localhost/test.php

  • 2.Redis安装

运行redis服务(装包,初始化,查看服务状态,连接存储数据)

]# tar -xf redis-4.0.8.tar.gz

]# cd redsi-4.0.8/

]# make && make install

]# ./utils/install_server.sh

一路回车

]# netstat -nutlp | grep 6379

 

]# redis-cli

127.0.0.1:6379>

 

 

 

安装支持redis模块

]# php  -m | grep redis

]# cd lnmp/

]# tar -xf   phpredis-2.2.4.tar

]# cd phpredis-2.2.4/

]# phpize

]#  ./configure --with-php-config=/usr/bin/php-config
]# make && make install
]# ls  /usr/lib64/php/modules/
]# vim  +728 /etc/php.ini 

extension_dir = "/usr/lib64/php/modules/"   #模块路径
; On windows:
extension = "redis.so"    #模块

]# systemctl restart php-fpm

]# php -m | grep redis

 

编写脚本


]# vim  /usr/local/nginx/html/sett.php

<?php
        $redis = new redis();
        $redis->connect("127.0.0.1",6379);
        $redis->set("lover","weclone");
        echo "OK";
?>

]# vim  /usr/local/nginx/html/gett.php

<?php
        $redis = new redis();
        $redis->connect("127.0.0.1",6379);
        $redis->get("lover");
        echo  "Yes";
?>

]# curl http://localhost/sett.php

OK

]# curl http://localhost/gett.php

Yes

 

排错:

1.php主配置文件写错了,

vim /etc/php.ini         

728行extension_dir = "/usr/lib64/php/modules/"
729行; On windows:
790行extension = "redis.so"

2.nginx没启

/usr/local/nginx/sbin/nginx

3.等待更多小伙伴来占位哦~

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值