本文共 5859 字,大约阅读时间需要 19 分钟。
概述:关系型数据库管理系统,按照预先设置按照预先设置的组织结构,将数据存储在物理介质上,数据之间可以做关联操作
RDBMS软件:
Oracle, DB2, MS SQL Server, MySQL, MariaDB
概述:非关系型数据库,不需预先定义数据存储结构,表的每条记录都可以有不同的类型和结构
服务软件:
1)Redis, MongoDB, Memcached (放内存里,访问速度快)适合用于打折的商品,非永久存储
2)CouchDB, Neo4j, FlockDB
介绍
远程字典服务器
高性能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服务
----------------------------------------------
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 选取模板数据个数(针对lru和ttl策略置)
[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
[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))36 stop)
......... 43 $CLIEXEC -h 192.168.4.50 -p 6350 -a 123456 shutdown.........
排错:看有没有端口、进程
1. /var/run/redis_6379.pid 上次修改前没停服务(改密码脚本停不了,用shutdown),解决:删掉该文件
安装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-fpm,php-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 |
运行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>
]# 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
<?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/