暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

原创|NO.A.0030|网络服务|——| NoSQL|mysql+nosql.redis|LNMP+mysql+Redis|

Java BBS 2021-04-12
293

一、什么是 NoSQL?

1.安装 gcc*

[root@server21 ~]# yum install -y gcc*
Installed:
gcc.x86_64 0:4.4.7-17.el6 gcc-c++.x86_64 0:4.4.7-17.el6 gcc-gfortran.x86_64 0:4.4.7-17.el6 gcc-gnat.x86_64 0:4.4.7-17.el6 gcc-java.x86_64 0:4.4.7-17.el6
gcc-objc.x86_64 0:4.4.7-17.el6 gcc-objc++.x86_64 0:4.4.7-17.el6


Dependency Installed:
alsa-lib.x86_64 0:1.1.0-4.el6 atk.x86_64 0:1.30.0-1.el6 avahi-libs.x86_64 0:0.6.25-15.el6 cairo.x86_64 0:1.8.8-6.el6_6
cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-17.el6 cups-libs.x86_64 1:1.4.2-74.el6 ecj.x86_64 1:3.4.2-6.el6
fontconfig.x86_64 0:2.8.0-5.el6 freetype.x86_64 0:2.3.11-17.el6 gdk-pixbuf2.x86_64 0:2.24.1-6.el6_7 glibc-devel.x86_64 0:2.12-1.192.el6
glibc-headers.x86_64 0:2.12-1.192.el6 gnutls.x86_64 0:2.8.5-19.el6_7 gtk2.x86_64 0:2.24.23-8.el6 hicolor-icon-theme.noarch 0:0.11-1.1.el6
jasper-libs.x86_64 0:1.900.1-16.el6_6.3 java-1.5.0-gcj.x86_64 0:1.5.0.0-29.1.el6 java_cup.x86_64 1:0.10k-5.el6 jpackage-utils.noarch 0:1.7.5-3.16.el6
kernel-headers.x86_64 0:2.6.32-642.el6 libICE.x86_64 0:1.0.6-1.el6 libSM.x86_64 0:1.2.1-2.el6 libX11.x86_64 0:1.6.3-2.el6
libX11-common.noarch 0:1.6.3-2.el6 libXau.x86_64 0:1.0.6-4.el6 libXcomposite.x86_64 0:0.4.3-4.el6 libXcursor.x86_64 0:1.1.14-2.1.el6
libXdamage.x86_64 0:1.1.3-4.el6 libXext.x86_64 0:1.3.3-1.el6 libXfixes.x86_64 0:5.0.1-2.1.el6 libXft.x86_64 0:2.3.2-1.el6
libXi.x86_64 0:1.7.4-1.el6 libXinerama.x86_64 0:1.1.3-2.1.el6 libXrandr.x86_64 0:1.4.2-1.el6 libXrender.x86_64 0:0.9.8-2.1.el6
libXtst.x86_64 0:1.2.2-2.1.el6 libart_lgpl.x86_64 0:2.3.20-5.1.el6 libgcj.x86_64 0:4.4.7-17.el6 libgcj-devel.x86_64 0:4.4.7-17.el6
libgfortran.x86_64 0:4.4.7-17.el6 libgnat.x86_64 0:4.4.7-17.el6 libgnat-devel.x86_64 0:4.4.7-17.el6 libgomp.x86_64 0:4.4.7-17.el6
libjpeg-turbo.x86_64 0:1.2.1-3.el6_5 libobjc.x86_64 0:4.4.7-17.el6 libpng.x86_64 2:1.2.49-2.el6_7 libstdc++-devel.x86_64 0:4.4.7-17.el6
libthai.x86_64 0:0.1.12-3.el6 libtiff.x86_64 0:3.9.4-10.el6_5 libxcb.x86_64 0:1.11-2.el6 mpfr.x86_64 0:2.4.1-6.el6
pango.x86_64 0:1.28.1-11.el6 pixman.x86_64 0:0.32.8-1.el6 ppl.x86_64 0:0.10.2-11.el6 sinjdoc.x86_64 0:0.5-9.1.el6
zip.x86_64 0:3.0-1.el6_7.1 zlib-devel.x86_64 0:1.2.3-29.el6


Complete!

2.安装所需要的包

#将redis-mysql.zip上传至服务器
[root@server21 ~]# ls
redis-mysql.zip
[root@server21 ~]# unzip redis-mysql.zip
[root@server21 ~]# cd redis-mysql
[root@server21 redis-mysql]# ls
autoconf-2.63-5.1.el6.noarch.rpm java_cup-0.10k-5.el6.x86_64.rpm mysql-5.1.73-7.el6.x86_64.rpm php-fpm-5.3.3-47.el6.x86_64.rpm
automake-1.11.1-4.el6.noarch.rpm libgcc-4.4.7-17.el6.x86_64.rpm mysql-libs-5.1.73-7.el6.x86_64.rpm php-gd-5.3.3-47.el6.x86_64.rpm
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm libgcj-4.4.7-17.el6.x86_64.rpm mysql-server-5.1.73-7.el6.x86_64.rpm php-mbstring-5.3.3-47.el6.x86_64.rpm
cpp-4.4.7-17.el6.x86_64.rpm libgcj-devel-4.4.7-17.el6.x86_64.rpm nginx-1.10.1-1.el6.ngx.x86_64.rpm php-mysql-5.3.3-47.el6.x86_64.rpm
ecj-3.4.2-6.el6.x86_64.rpm libgfortran-4.4.7-17.el6.x86_64.rpm perl-DBD-MySQL-4.013-3.el6.x86_64.rpm php-pdo-5.3.3-47.el6.x86_64.rpm
gcc-4.4.7-17.el6.x86_64.rpm libgnat-4.4.7-17.el6.x86_64.rpm perl-DBI-1.609-4.el6.x86_64.rpm phpredis-master.zip
gcc-c++-4.4.7-17.el6.x86_64.rpm libgnat-devel-4.4.7-17.el6.x86_64.rpm php-5.3.3-47.el6.x86_64.rpm php-xml-5.3.3-47.el6.x86_64.rpm
gcc-gfortran-4.4.7-17.el6.x86_64.rpm libgomp-4.4.7-17.el6.x86_64.rpm php-bcmath-5.3.3-47.el6.x86_64.rpm php-xmlrpc-5.3.3-47.el6.x86_64.rpm
gcc-gnat-4.4.7-17.el6.x86_64.rpm libobjc-4.4.7-17.el6.x86_64.rpm php-cli-5.3.3-47.el6.x86_64.rpm ppl-0.10.2-11.el6.x86_64.rpm
gcc-java-4.4.7-17.el6.x86_64.rpm libstdc++-4.4.7-17.el6.x86_64.rpm php-common-5.3.3-47.el6.x86_64.rpm redis-2.8.19.tar.gz
gcc-objc-4.4.7-17.el6.x86_64.rpm libstdc++-devel-4.4.7-17.el6.x86_64.rpm php-dba-5.3.3-47.el6.x86_64.rpm sinjdoc-0.5-9.1.el6.x86_64.rpm
gcc-objc++-4.4.7-17.el6.x86_64.rpm libXpm-3.5.10-2.el6.x86_64.rpm php-devel-5.3.3-47.el6.x86_64.rpm zlib-devel-1.2.3-29.el6.x86_64.rpm
java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64.rpm mpfr-2.4.1-6.el6.x86_64.rpm php-enchant-5.3.3-47.el6.x86_64.rpm
[root@server21 redis-mysql]# yum install -y *
Installed:
autoconf.noarch 0:2.63-5.1.el6 automake.noarch 0:1.11.1-4.el6 libXpm.x86_64 0:3.5.10-2.el6 mysql.x86_64 0:5.1.73-7.el6 mysql-server.x86_64 0:5.1.73-7.el6
nginx.x86_64 0:1.10.1-1.el6.ngx perl-DBD-MySQL.x86_64 0:4.013-3.el6 perl-DBI.x86_64 0:1.609-4.el6 php.x86_64 0:5.3.3-47.el6 php-bcmath.x86_64 0:5.3.3-47.el6
php-cli.x86_64 0:5.3.3-47.el6 php-common.x86_64 0:5.3.3-47.el6 php-dba.x86_64 0:5.3.3-47.el6 php-devel.x86_64 0:5.3.3-47.el6 php-enchant.x86_64 0:5.3.3-47.el6
php-fpm.x86_64 0:5.3.3-47.el6 php-gd.x86_64 0:5.3.3-47.el6 php-mbstring.x86_64 0:5.3.3-47.el6 php-mysql.x86_64 0:5.3.3-47.el6 php-pdo.x86_64 0:5.3.3-47.el6
php-xml.x86_64 0:5.3.3-47.el6 php-xmlrpc.x86_64 0:5.3.3-47.el6


Dependency Installed:
apr.x86_64 0:1.3.9-5.el6_2 apr-util.x86_64 0:1.3.9-3.el6_0.1 apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 enchant.x86_64 1:1.5.0-5.el6
httpd.x86_64 0:2.2.15-53.el6.centos httpd-tools.x86_64 0:2.2.15-53.el6.centos hunspell.x86_64 0:1.2.8-16.el6 libedit.x86_64 0:2.11-4.20080712cvs.1.el6
libxslt.x86_64 0:1.1.26-2.el6_3.1 mailcap.noarch 0:2.1.31-2.el6


Complete!

3.配置网站 nginx 并启动 nginx

a. vim /etc/nginx/nginx.conf

[root@server21 ~]# vim /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf; #主配置文件中没有server区域,需要到这里去,默认已经开启状态;

vim /etc/nginx/conf.d/default.conf

[root@server21 ~]# vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name www.yanqi.com; #域名
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;


location / {
root /usr/share/nginx/html;
index index.html index.htm;
location / {
root /www; #网站页面的位置
index index.php index.html index.htm; #加一个支持PHP的
location ~ \.php$ {
root           /www;                                     #默认发布目录
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; #加入发布参数
include fastcgi_params;
}

启动 nginx

[root@server21 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@server21 ~]# service nginx start
Starting nginx: [ OK ]

 b. vim /etc/php-fpm.d/www.conf

[root@server21 ~]# vim /etc/php-fpm.d/www.conf
user = nginx #将允许者改为nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

4.启动 php 和数据库

[root@server21 ~]# service php-fpm start
Starting php-fpm: [ OK ]
[root@server21 ~]# service mysqld start
Please report any problems with the /usr/bin/mysqlbug script! [ OK ]
Starting mysqld: [ OK ]

5.授权,使登录数据库时使用‘123456’密码

[root@server21 ~]# mysqladmin -uroot password 123456
[root@server21 ~]# mysql -uroot -p123456

6.测试网站和 php 的连通性

[root@server21 ~]# mkdir /www
[root@server21 ~]# vim /www/index.php、
<?php
phpinfo();
#通过浏览器验证http://20.20.20.21/

以上搭建了一个 lnmp 环境.

7.安装 redis

[root@server21 ~]# cd redis-mysql
[root@server21 redis-mysql]# tar -zxvf redis-2.8.19.tar.gz
[root@server21 redis-mysql]# cd redis-2.8.19
[root@server21 redis-2.8.19]# make
[root@server21 redis-2.8.19]# make PREFIX=/usr/local/redis install
cd src && make install
make[1]: Entering directory `/root/redis-mysql/redis-2.8.19/src'


Hint: It's a good idea to run 'make test' ;)


INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/root/redis-mysql/redis-2.8.19/src'
[root@server21 redis-2.8.19]# cp -a redis.conf /usr/local/redis/

8.安装提供 php 和 redis 联系的软件

a. 解压

[root@server21 redis-2.8.19]# cd .. 
[root@server21 redis-mysql]# unzip phpredis-master.zip
[root@server21 redis-mysql]# cd phpredis-master

b. 安装

[root@server21 phpredis-master]# phpize                   #其实就是安装一个模块
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@server21 phpredis-master]# ./configure --with-php-config=/usr/bin/php-config
[root@server21 phpredis-master]# make && make install
Build complete.
Don't forget to run 'make test'.


Installing shared extensions: /usr/lib64/php/modules/

c.让 php 支持 redis

[root@server21 phpredis-master]# vim /etc/php.ini
extension=redis.so                                       #在末尾添加如下内容      #在PHP主配置文件中添加Redis
[root@server21 phpredis-master]# service php-fpm restart
Stopping php-fpm: [ OK ]
Starting php-fpm: [ OK ]
#刷新http://20.20.20.21/输出Redis配置,说明配置OK

9.进入 mysql 插数据

[root@server21 ~]# mysql -uroot -p123456
#创建一个mytest库
mysql> create database mytest;
Query OK, 1 row affected (0.00 sec)


mysql> use mytest;
Database changed
mysql> create table test (id int,name char(20));
Query OK, 0 rows affected (0.07 sec)


mysql> insert into test values (1,'a1'),(2,'a2'),(3,'a3'),(4,'a4'),(5,'a5');
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from test;
+------+------+
| id | name |
+------+------+
| 1 | a1 |
| 2 | a2 |
| 3 | a3 |
| 4 | a4 |
| 5 | a5 |
+------+------+
5 rows in set (0.00 sec)

10.开启 redis,并编写脚本 

[root@server21 ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/
#配置后台启动
[root@server21 ~]# vim /usr/local/redis/redis.conf
daemonize yes
[root@server21 ~]# redis-server /usr/local/redis/redis.conf
[root@server21 ~]# netstat -antp |grep 6379
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 7384/redis-server *
tcp 0 0 :::6379 :::* LISTEN 7384/redis-server *
#将PHP脚本页面放至网页的访问目录下
[root@server21 ~]# vim redis-mysql.php


<?php
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
//开启debug




// mysql 库: mytest 表:test
$redis = new redis();
<?php
ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
//开启debug




// mysql 库: mytest 表:test
$redis = new redis();
$redis->connect('127.0.0.1',6379);
$query = "select * from test limit 5";
for ($key=1;$key<=5;$key++)
{
if (!$redis->get($key))
//判断redis中是否有1 2 3 4 5 的键,没有连接数据库查询mytest库的test表,然后插入到redis中
{
$connect = mysql_connect('127.0.0.1','root','123456');
mysql_select_db(mytest);
$result = mysql_query($query);
var_dump ($result);
while ($row = mysql_fetch_assoc($result))
{
$redis->setex($row['id'],30,$row['name']);
//从MySQL中获取的资源插入到redis中,并设置有效时间为30s
}
$myserver = 'mysql';
break;
}
else
//判断redis中是否有1 2 3 4 5 的键,有直接打印redis中的 1 2 3 4 5 键的值。
{
$myserver = "redis";
$data[$key] = $redis->get($key);
}
}
echo $myserver;
echo "<br>";
for ($key=1;$key<=5;$key++)
{
echo "number is <b><font color=#FF0000>$key</font></b>";
echo "<br>";
echo "name is <b><font color=#FF0000>$data[$key]</font></b>";
echo "<br>";
}
?>
#将发布页面放至网页访问目录下
[root@server21 ~]# cp -a redis-mysql.php /www/redis.php
#通过Chrome访问http://20.20.20.21/redis.php输出如下内容
http://20.20.20.21/redis.php #第一次访问的时候,Redis是没有数据的,从数据库里面调取到数据
Notice: Use of undefined constant mytest - assumed 'mytest' in /www/redis.php on line 17 resource(4) of type (mysql result) mysql
number is 1
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 2
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 3
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 4
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 5
Notice: Undefined variable: data in /www/redis.php on line 41 name is

11.验证 php 访问 redis 和 mysql

#再次刷新获取到Redis数据
http://20.20.20.21/redis.php
redis
number is 1
name is a1
number is 2
name is a2
number is 3
name is a3
number is 4
name is a4
number is 5
name is a5
#30秒之内查询数据都是从Redis里面获取数据,30秒之后,数据失效,回到初始页面;就需要从数据库里面再次获取数据,向Redis里面再插入一份。30秒提高了数据的一致性问题。
Notice: Use of undefined constant mytest - assumed 'mytest' in /www/redis.php on line 17 resource(4) of type (mysql result) mysql
number is 1
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 2
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 3
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 4
Notice: Undefined variable: data in /www/redis.php on line 41 name is
number is 5
Notice: Undefined variable: data in /www/redis.php on line 41 name is
redis
number is 1
name is a1
number is 2
name is a2
number is 3
name is a3
number is 4
name is a4
number is 5
name is a5

==============================END================================

辅助文本

一、什么是 NoSQL?

1.安装 gcc*

2.安装所需要的包

3.配置网站 nginx 并启动 nginx

a. vim /etc/nginx/nginx.conf

vim /etc/nginx/conf.d/default.conf

启动 nginx

 b. vim /etc/php-fpm.d/www.conf

4.启动 php 和数据库

5.授权,使登录数据库时使用‘123456’密码

6.测试网站和 php 的连通性

以上搭建了一个 lnmp 环境.

7.安装 redis

8.安装提供 php 和 redis 联系的软件

a. 解压

b. 安装

c.让 php 支持 redis

9.进入 mysql 插数据

10.开启 redis,并编写脚本

11.验证 php 访问 redis 和 mysql

END





声明:JavaBBS论坛主要用于IT技术专题的交流学习,为开源技术爱好者提供广泛、权威的技术资料。若您在技术专题有更好的想法或者建议,欢迎交流!!!



推荐阅读

Recommended reading

 







JavaBBS



Git











  






https://www.javabbs.cn/git






  JavaBBS大数据






→ 






https://www.javabbs.cn





/dsj





  JavaBBS云存储






→  https://www.javabbs.cn






/ycc







  JavaBBS数据库













  https://www.javabbs.cn






/sjk







  JavaBBS云计算













  https://www.javabbs.cn






/yjs







  JavaBBSIT.Log













https://www.javabbs.cn






/itl






  JavaBBSNginx













  https://www.javabbs.cn






/ngx






  JavaBBSzabbix













https://www.javabbs.cn






/zbx






  JavaBBSJavaSE













https://www.javabbs.cn






/jse







  JavaBBS社区文章













https://www.javabbs.cn






/bwz






  JavaBBS社区资料













https://www.javabbs.cn






/bzl







文章转载自Java BBS,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论