博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LNMP+Redis非关系型数据库
阅读量:4231 次
发布时间:2019-05-26

本文共 5859 字,大约阅读时间需要 19 分钟。

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.等待更多小伙伴来占位哦~

 

 

 

 

 

 

 

 

 

 

转载地址:http://teiqi.baihongyu.com/

你可能感兴趣的文章
游戏通讯技术:帧同步技术
查看>>
防火墙技术指标---并发连接数/吞吐量
查看>>
V100服务器和T4服务器的性能指标
查看>>
elasticsearch 启动、停止及更改密码
查看>>
Kafka,它为什么速度会这么快?
查看>>
zookeeper安装启动的一些问题
查看>>
rabbitmq命令执行报错command not found
查看>>
rabbitmq基础知识介绍及总结
查看>>
StackOverFlow异常记录
查看>>
SpringMvc4.1:注解JsonView与泛型返回类
查看>>
SpringMVC+Mybatis+事务回滚+异常封装返回
查看>>
计算机网络实验报告(三):Cisco Packet Tracer 实验
查看>>
嵌入式系统基础学习笔记(九):基于 SPI 协议在 0.96 寸 OLED上【平滑显示汉字】及【温湿度数据采集显示】
查看>>
嵌入式系统基础学习笔记(十):
查看>>
网络通信编程学习笔记(七):Java与MQTT
查看>>
人工智能与机器学习学习笔记(二)
查看>>
Java I/O
查看>>
SQL Server 2005 T-SQL Recipes: A Problem-Solution Approach
查看>>
Core Python Programming
查看>>
Creating Database Web Applications with PHP and ASP
查看>>