一、什么是 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.el6gcc-objc.x86_64 0:4.4.7-17.el6 gcc-objc++.x86_64 0:4.4.7-17.el6Dependency 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_6cloog-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.el6fontconfig.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.el6glibc-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.el6jasper-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.el6kernel-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.el6libX11-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.el6libXdamage.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.el6libXi.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.el6libXtst.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.el6libgfortran.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.el6libjpeg-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.el6libthai.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.el6pango.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.el6zip.x86_64 0:3.0-1.el6_7.1 zlib-devel.x86_64 0:1.2.3-29.el6Complete!
2.安装所需要的包
#将redis-mysql.zip上传至服务器[root@server21 ~]# lsredis-mysql.zip[root@server21 ~]# unzip redis-mysql.zip[root@server21 ~]# cd redis-mysql[root@server21 redis-mysql]# lsautoconf-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.rpmautomake-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.rpmcloog-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.rpmcpp-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.rpmecj-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.rpmgcc-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.zipgcc-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.rpmgcc-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.rpmgcc-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.rpmgcc-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.gzgcc-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.rpmgcc-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.rpmjava-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.el6nginx.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.el6php-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.el6php-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.el6php-xml.x86_64 0:5.3.3-47.el6 php-xmlrpc.x86_64 0:5.3.3-47.el6Dependency 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.el6httpd.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.el6libxslt.x86_64 0:1.1.26-2.el6_3.1 mailcap.noarch 0:2.1.31-2.el6Complete!
3.配置网站 nginx 并启动 nginx
a. vim /etc/nginx/nginx.conf
[root@server21 ~]# vim /etc/nginx/nginx.confinclude /etc/nginx/conf.d/*.conf; #主配置文件中没有server区域,需要到这里去,默认已经开启状态;
vim /etc/nginx/conf.d/default.conf
[root@server21 ~]# vim /etc/nginx/conf.d/default.confserver {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 -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful[root@server21 ~]# service nginx startStarting nginx: [ OK ]
b. vim /etc/php-fpm.d/www.conf
[root@server21 ~]# vim /etc/php-fpm.d/www.confuser = nginx #将允许者改为nginx; RPM: Keep a group allowed to write in log dir.group = nginx
4.启动 php 和数据库
[root@server21 ~]# service php-fpm startStarting php-fpm: [ OK ][root@server21 ~]# service mysqld startPlease 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、<?phpphpinfo();#通过浏览器验证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 installcd src && make installmake[1]: Entering directory `/root/redis-mysql/redis-2.8.19/src'Hint: It's a good idea to run 'make test' ;)INSTALL installINSTALL installINSTALL installINSTALL installINSTALL installmake[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: 20090626Zend Module Api No: 20090626Zend Extension Api No: 220090626[root@server21 phpredis-master]# ./configure --with-php-config=/usr/bin/php-config[root@server21 phpredis-master]# make && make installBuild 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.iniextension=redis.so #在末尾添加如下内容 #在PHP主配置文件中添加Redis[root@server21 phpredis-master]# service php-fpm restartStopping 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 changedmysql> 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: 0mysql> 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.confdaemonize yes[root@server21 ~]# redis-server /usr/local/redis/redis.conf[root@server21 ~]# netstat -antp |grep 6379tcp 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<?phpini_set("display_errors", "On");error_reporting(E_ALL | E_STRICT);//开启debug// mysql 库: mytest 表:test$redis = new redis();<?phpini_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) mysqlnumber is 1Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 2Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 3Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 4Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 5Notice: Undefined variable: data in /www/redis.php on line 41 name is
11.验证 php 访问 redis 和 mysql
#再次刷新获取到Redis数据http://20.20.20.21/redis.phpredisnumber is 1name is a1number is 2name is a2number is 3name is a3number is 4name is a4number is 5name 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) mysqlnumber is 1Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 2Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 3Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 4Notice: Undefined variable: data in /www/redis.php on line 41 name isnumber is 5Notice: Undefined variable: data in /www/redis.php on line 41 name isredisnumber is 1name is a1number is 2name is a2number is 3name is a3number is 4name is a4number is 5name 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





