数据库基础之11(部署redis服务、redis常用操作指令、配置文件解析vim /etc/redis/6379.conf、配置PHP支持redis)

目录

1、数据库类型

1-1、RDBMS

1-2、NoSQL

2、部署redis服务

2-1、Redis介绍

2-2、安装软件包

2-3、初始配置

2-4、启动停止程序及查状态

2-5、连接redis服务

2-6、修改服务使用的ip地址和端口:

2-7、连接服务时使用密码

3、redis常用操作指令

3-1、向redis服务存取数据的常用命令

4、配置文件解析vim /etc/redis/6379.conf

  4-1、数据单位

4-2、常用配置选项

4-3、内存管理

5、部署LNMP+redis或LAMP

5-1、 部署LAMP

 5-2、安装源码nginx

6、配置PHP支持redis

6-1、 装包

6-2、修改PHP程序的配置文件,调用模块

6-3、 编写php脚本(连接redis服务存储数据)

6-4、 测试配置


1、数据库类型

1-1、RDBMS

• 关系数据库管理系统
Relational Database Management System
– 数据按照预先设置的组织结构,存储在物理存储介质上。
– 数据之间可以做关联操作
主流的RDBMS软件

  • – Oracle
  • – DB2
  • – WS-sqlserver
  • – MySQL

1-2、NoSQL

• NoSQL(NoSQL = Not Only SQL )
– 意思是"不仅仅是SQL“
– 泛指非关系型数据库
– 不需要预先定义数据存储结构
– 表的每条记录都可以有不同的类型和结构


NoSQL主流服务软件

  • – Redis
  • – MongoDB
  • – Memcached
  • – CouchDB
  • – Neo4j
  • – FlockDB

2、部署redis服务

2-1、Redis介绍

• Redis
Remode DIctionary Server(远程字典服务器)
– 使用C语言编写的,遵守BSD的开源软件
– 是一款高性能的(Key/Values)分布式内存存储服务器
– 并支持数据持久化的NoSQL数据库服务软件
– 中文网站www.redis.cn
Redis特点:

  1. – 支持数据持久化,可以把内存里数据保存到硬盘中
  2. – 不仅仅支持key/values类型的数据,同时还支持list hash set zset 类型
  3. – 支持master-salve 模式数据备份    

2-2、安装软件包

rpm -q gcc gcc-c++---------检查有没有安装gcc  gcc-c++
yum -y install gcc gcc-c++----若没装则装一下
# tar -xzf redis-4.0.8.tar.gz
# cd redis-4.0.8------进入redis目录
#make----编译
#make install---安装

2-3、初始配置

[root@host151 redis-4.0.8]# ls  --------编译安装完之后redis目录下详情
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests
BUGS             deps     MANIFESTO  runtest          sentinel.conf     utils
CONTRIBUTING     INSTALL  README.md  runtest-cluster  src

[root@host151 redis-4.0.8 ]#./utls/install_server.sh----------初始化
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] ----选择主配置文件名
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] ----选择日志文件名
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]----选择数据库目录
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] ---选择redis服务器软件存储路径
Selected config:
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----redis-server程序
Cli Executable : /usr/local/bin/redis-cli-----redis-cli程序
Is this ok? Then press ENTER to go on or Ctrl-C to abort.-----回车以继续或Ctrl-C退出
Copied /tmp/6379.conf => /etc/init.d/redis_6379-----redis启动脚本
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...    -----------正在启动redis服务
Installation successful!    -----------安装成功
-----------------------------服务默认初始化后就已经启动了

2-4、启动停止程序及查状态

[root@host151 utils]# /etc/init.d/redis_6379 stop--------停止服务
Stopping ...
Redis stopped
[root@host151 utils]# /etc/init.d/redis_6379 status------查看服务是否运行
cat: /var/run/redis_6379.pid: 没有那个文件或目录
Redis is running ()---------------括号中为空则为没运行
[root@host151 utils]# /etc/init.d/redis_6379 start-------启动服务
Starting Redis server...
[root@host151 utils]# /etc/init.d/redis_6379 status------查看服务是否运行
Redis is running (6744)
[root@host151 utils]# ss -utnlp | grep 6379-----查看相关的服务端口号是否已启动
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=6744,fd=6))

2-5、连接redis服务

[root@host151 utils]# redis-cli---------默认只能本机登陆
127.0.0.1:6379> exit
[root@host151 utils]#


2-6、修改服务使用的ip地址和端口:

scp /usr/local/bin/redis-cli  192.168.4.50:/usr/local/bin/----将redis-cli命令拷贝到客户端50主机

/etc/init.d/redis_6379 stop-----先停服务
vim /etc/redis/6379.conf----修改主配置文件
70  bind 192.168.4.151-------将默认的127.0.0.1修改为192.168.4.151
91  # Accept connections on the specified port, default is 6379 (IANA #815344).-----默认端口是6379
92  # If port 0 is specified Redis will not listen on a TCP socket.
93  port 6351-----将端口号修改为一个好记的端口,不修改也可以
/etc/init.d/redis_6379 start----修改完后起服务
[root@host151 utils]# redis-cli -h 192.168.4.151 -p 6351-------服务端重新测试连接服务
192.168.4.151:6351> exit
[root@host50 ~]# redis-cli -h 192.168.4.151 -p 6351------客户端测试连接服务
192.168.4.151:6351> exit
修改主配置文件后:不能再用/etc/init.d/redis_6379 stop
需要用redis-cli -h 192.168.4.151 -p 6351 shutdown来停服务
或者:
vim /etc/init.d/redis_6379-------再改redis启动脚本
5  CLIEXEC=/usr/local/bin/redis-cli
6  PIDFILE=/var/run/redis_6379.pid
7  CONF="/etc/redis/6379.conf"
8  REDISPORT="6351"--------修改端口为6351
43             $CLIEXEC -h 192.168.4.151 -p $REDISPORT shutdown
就可以再用/etc/init.d/redis_6379 stop

2-7、连接服务时使用密码

• 设置密码
/etc/init.d/redis_6379 stop-----先停服务
– vim /etc/redis/6379.conf   
501 # requirepass foobared---修改前
501:requirepass 123456---修改后
/etc/init.d/redis_6379 start----修改完后起服务
– [root@localhost redis-4.0.8]# redis-cli -h 192.168.4.151 -p 6351------服务端重新测试连接服务
– 127.0.0.1:6379> ping
– (error) NOAUTH Authentication required.
– 127.0.0.1:6379> auth 123456 -----输入密码
– OK
– 127.0.0.1:6379> ping
– PONG
– 127.0.0.1:6379>
注意这里相关参数的定义:
-p    指定端口
-a    指定密码
-h    指定ip

注意:改变端口号、密码、ip:脚本停止不了解决办法
redis-cli -p 6345 shutdown
改变脚本
vim /etc/init.d/redis_6379
43:    $CLIEXEC -h 192.168.4.52 -p 6351 -a 123456 shutdown

3、redis常用操作指令

1.– Set keyname keyvalue -----------为keyname赋值
2.– Set keyname keyvalue EX 秒数--------- 赋值时指定有效存在时间
3.– get keyname ---------列出赋值
4.– Select 数据库编号0-15------------切换库(共16个)
5.– Keys * -------------列出当前库下所有keyname变量
6.– Keys a? ------------列出指定变量
7.– Exists keyname -----测试是否存在,0为不存在,1为存在
8.– ttl keyname --------查看生存时间 -1是永不过期,-2是过期
9.– type keyname -------查看keyname类型,注意这里的数字也是字符类型
10.– move keyname dbname------移动变量从当前库到目标库,该变量会从此库移除
11.– expire keyname 10 ------设置变量有效存在时间,单位为秒
12.– del keyname ----------删除变量
13.– flushall----------删除所有变量,删除内存中所有数据,即清楚所有库的数据
14. -flushdb --------只删除当前库的数据
15.– save --------保存变量存储到数据库目录中 硬盘里
16.– shutdown ------关闭服务


3-1、向redis服务存取数据的常用命令

[root@host50 ~]# redis-cli  -h 192.168.4.51 -p 6351
192.168.4.51:6351> set name bob
192.168.4.51:6351> get name
192.168.4.51:6351> keys *
192.168.4.51:6351> set age 18
192.168.4.51:6351> keys *
192.168.4.51:6351> select   3
192.168.4.51:6351> select   0
192.168.4.51:6351> keys *
192.168.4.51:6351> keys a?
192.168.4.51:6351> keys a??
192.168.4.51:6351> EXISTS school  
192.168.4.51:6351> EXISTS name
192.168.4.51:6351> ttl  age
192.168.4.51:6351> EXPIRE age 10
192.168.4.51:6351> ttl  age
192.168.4.51:6351> type name
192.168.4.51:6351> move   name  1

4、配置文件解析vim /etc/redis/6379.conf

  4-1、数据单位

  12 # 1k => 1000 bytes
  13 # 1kb => 1024 bytes
  14 # 1m => 1000000 bytes
  15 # 1mb => 1024*1024 bytes
  16 # 1g => 1000000000 bytes
  17 # 1gb => 1024*1024*1024 bytes

4-2、常用配置选项

  1. – port 6379 ---------------指定访问时访问的端口
  2. – bind 127.0.0.1 ----------访问时访问的IP地址
  3. – tcp-backlog 511 ---------tcp连接总数
  4. – timeout 0 ------连接超时时间,就是连接成功后客户端闲置x秒后就会自动断开与redis的连接,因为永远不会闲置0秒,所以永不超时
  5. – tcp-keepalive 300 -------长连接时间
  6. – daemonize yes -----------以守护进程方式运行
  7. – databases 16 ------------数据库个数
  8. – pidfile /var/run/redis_6379.pid 进程PID
  9. – logfile /var/log/redis_6379.log 日志文件
  10. – maxclients 10000 --------并发连接数量
  11. – dir /var/lib/redis/6379 -----数据库目录
  12. – requirepass foobared ---------客户端连接服务器后需要先输入密码,再做其他操作
  13. - masterauth <master-password> 主从认证的密码
  14. - slaveof <masterip> <masterport> 设置主服务器IP及端口,主动与主服务器同步数据


4-3、内存管理

• 内存清除策略

  • – volatile-lru 最近最少使用 (针对设置了过期时间的key)
  • – allkeys-lru 删除最少使用的keyname
  • – volatile-random 在设置了过期的key里随机移除
  • – allkeys-random 随机移除keyname
  • – volatile-ttl (minor TTL) 移除最近过期的key
  • – noeviction 永远不删除 写满时报错

• 选项默认设置

  • – maxmemory <bytes> //最大内存
  • – maxmemory-policy noeviction //定义使用的策略
  • – maxmemory-samples 5 //选取模板数据的个数(针对lru 和 ttl 策略)

5、部署LNMP+redis或LAMP

5-1、 部署LAMP

[root@host50 ~]# rpm -q httpd php  php-mysql
httpd-2.4.6-67.el7.x86_64----apache服务
php-5.4.16-42.el7.x86_64-----php解释器
php-mysql-5.4.16-42.el7.x86_64----检查用来实现php连接mysql的软件有没有安装
[root@host50 ~]# rpm -qa  | grep -i  mysql
 
]# systemctl  start httpd ; systemctl  enable httpd
]# systemctl  start mysqld ; systemctl  enable mysqld-----起服务
~]# mysql -uroot -p123456----测试mysql
mysql>

 
5-2、安装源码nginx

rpm -q gcc  gcc-c++  pcre-devel  zlib-devel------检查依赖包是否已安装
useradd nginx-----创建nginx用户
./configure --prefix=/usr/local/nginx  --user=nginx --group=nginx ----自定义相关参数
make && make install-----编译及安装
 

  • 测试nginx服务是否ok

[root@host51 nginx-1.12.2]# netstat -utnlp  | grep :80
[root@host51 nginx-1.12.2]# /usr/local/nginx/sbin/nginx  
[root@host51 nginx-1.12.2]# netstat -utnlp  | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3130/nginx: master   
[root@host51 nginx-1.12.2]# echo 234 > /usr/local/nginx/html/a.html
[root@host51 nginx-1.12.2]# curl http://localhost/a.html
234
 

  • 安装fastcgi

]# rpm -ivh php-fpm-5.4.16-42.el7.x86_64.rpm
]# systemctl  start php-fpm.service  
]# systemctl  enable php-fpm.service  
]# netstat -utnlp  | grep :9000
修改配置文件以实现php连接mysql
vim   /usr/local/nginx/conf/nginx.conf
 65         location ~ \.php$ {
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 70         #    include        fastcgi_params;
 71             include        fastcgi.conf;
 72         }
:wq

  • • 启动nginx服务

[root@host51 lnmp]# /usr/local/nginx/sbin/nginx  -s stop
[root@host51 lnmp]# /usr/local/nginx/sbin/nginx
[root@host51 lnmp]# vim /usr/local/nginx/html/test.php
<?php
echo "hello boy";
?>
:wq
[root@host51 lnmp]# curl http://localhost/test.php
hello boy


6、配置PHP支持redis

php支持redis服务 51主机  LNMP
配置步骤:
 

6-1、 装包

]#rpm -q gcc  gcc-c++------检查是否安装
]#yum -y install autoconf automake---安装依赖包
]#rpm php-devel-5.4.16-42.el7.x86_64.rpm ---安装依赖包

]#phpize-------因为php需要使用phpize安装php扩展,所以phpize必须ok,而phpize要ok必须安装上面的软件包
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525

安装php支持redis的源码包
]#tar -zxvf php-redis-2.2.4.tar.gz  
]#cd phpredis-2.2.4/
]#./configure  --with-php-config=/usr/bin/php-config    
]#make

]# make install
Installing shared extensions:     /usr/lib64/php/modules/
 
]#ls /usr/lib64/php/modules/
redis.so

6-2、修改PHP程序的配置文件,调用模块

修改php配置文件
]# vim /etc/php.ini      
728 extension_dir = "/usr/lib64/php/modules/"-----扩展模块所在目录
730 extension = "redis.so"---扩展模块名
:wq

[root@host151 phpredis-2.2.4]# systemctl restart php-fpm.service----重起服务以加载配置文件
[root@host151 phpredis-2.2.4]# php -m | grep -i redis-----查看php支持的模块(m)中有没有redis
redis

6-3、 编写php脚本(连接redis服务存储数据)

vim /usr/local/nginx/html/redis.php
<?php
$redis = new redis();
$redis->connect('192.168.4.51',"6351");
$redis->auth('123456');
$redis->set('age','60');
echo $redis->get('age');
?>
:wq

6-4、 测试配置

在客户端访问51 网站服务器的redis.php 网页文件
连接51主机的redis服务查看存储数据是否有名叫aga的变量名,且其值为60。

猜你喜欢

转载自blog.csdn.net/Perfect11_1/article/details/81260533
今日推荐