NoSQL ( NoSQL = Not Only SQL )
- 不仅仅是SQL
- 泛指非关系型数据库
- 不需要预先定义数据存储结构
- 每条记录可以有不同的数据类型和字段个数
- 主流软件:Memcached Redis MongoDB等
Redis介绍
- Remote Dictionary Server(远程字典服务器)
- 是一款高性能的分布式内存数据库
- 支持数据持久化(定期把内存里数据存储到硬盘)
- 支持多种数据类型String.list.hash …
- 支持master-slave模式数据备份
- 中文网站www.redis.cn
安装软件
]# rpm -q gcc
]# yum -y install gcc
]# tar -zxvf redis-4.0.8.tar.gz
]# cd redis-4.0.8
]# make
]# make install
初始配置
配置服务运行参数
]# ./utils/install_server.sh //初始化
– 端口 6379
– 主配置文件 /etc/redis/6379.conf
– 日志文件 /var/log/redis_6379.log
– 数据库目录 /var/lib/redis/6379
– 服务启动程序 /usr/local/bin/redis-server
– 命令行连接命令 /usr/local/bin/redis-cli
管理服务
]# /etc/init.d/redis_6379 stop //停止服务
]# /etc/init.d/redis_6379 start //启动服务
]# ps -C redis-server //查看进程
]# ss -nutlp | grep 6379 //查看端口
连接服务
访问redis服务
- redis-cli 默认连接本机的redis服务
]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set name tom
OK
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> exit
常用命令
- set key名 key值 //存储1个key值
- mset key名列表 //存储多个key值
- get key名 //获取key值
- mget //获取多个key值
- select 数据库编号0-15 //切换库
- keys * //显示所有key名
- keys a? //显示制定key名
- exists key名 //测试key名是否存在
- ttl key名 //查看key生存时间
- type key名 //查看key类型
- move key名 库编号 //移动key到制定库
- expire key名 数字 //设置key有效时间
- del key名 //删除指定的key
- flushall //删除内存里所有的key
- flushdb //删除所在库的所有key
- save //保存所有key到硬盘
- shutdown //停止服务
配置文件解析
配置分类
名称 | 说明 |
---|---|
NETWORK | 网络 |
GENERAL | 常规 |
SNAPSHOTTING | 快照 |
REPLICATION | 复制 |
SECURITY | 安全 |
CLIENTS | 客户端 |
MEMORY MANAGEMENT | 内存管理 |
常用配置
- port 6379 //端口
- bind 127.0.0.1 //IP地址
- daemonize yes //守护进程方式运行
- databases 16 //数据库个数
- logfile /var/log/redis_6379.log //日志文件
- maxclients 10000 //并发连接数量
- dir /var/lib/redis/6379 //数据库目录
内存管理
内存清除策略
- volatile-lru //最近最少使用(针对设置了ttl的key)
- allkeys-lru //删除最少使用的key(针对所有的key)
- allkeys-lfu //从所有key中清除使用频率最少的key
- volatile-lfu //从所有配置了过期时间的key中清除使用频率最少的key
- volatile-random //在设置了ttl的key里随机移除
- allkeys-random //随机移除key
- volatile-ttl (minor ttl) //移除最近过期的key
- noeviction //不删除
优化设置
maxmemory //最大内存
maxmemory-policy //定义使用策略
maxmemory-samples //选取key模板的个数(针对lru和tll策略)连接密码
设置密码,ip地址,端口
]# vim /etc/redis/6379.conf
requirepass 123456
bind 192.168.4.1
port 6350
:wq
]# redis-cli -h 192.168.4.1 -p 6350 //连接服务
192.168.4.1:6350> ping
(error)NOAUTH Authentication required
192.168.4.1:6350> auth 123456 //输入密码
OK
192.168.4.1:6350> ping
PONG
]# redis-cli -h 192.168.4.1 -p 6350 -a 123456
]# redis-cli -h 192.168.4.1 -p 6350 -a 123456 shutdown
部署LNMP+Redis
安装源码nginx及php-fpm
yum -y install gcc pcre-devel zlib-devel
cd lnmp
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure
make
make install
yum -y install php-fpm
yum -y install mariadb-server mariadb
修改配置文件
vim /usr/local/nginx/conf/nginx.conf
location ~\.php${
root html;
fstcgi_pass 127.0.0.1:9000;
fstcgi_index index.php;
include fastcgi.conf;
}
:wq
]# /usr/local/nginx/sbin/nginx -t //测试修改
启动服务
]# /usr/local/nginx/sbin/nginx
]# ss -ntulp | grep 80
]# systemctl start php-fpm
]# ss -ntulp | grep 9000
测试配置
编写测试文件
]# vim /usr/local/nginx/html/test.php
<?php
echo "hello world";
?>
访问nginx服务
]# firefox http://192.168.4.57/test.php
配置支持Redis
安装软件并执行初始配置
]# tar -xzf redis-4.0.8.tar.gz
]# cd redis-4.0.8
]# make
]# make install
]# ./utils/install_server.sh //初始化
]# /etc/init.d/redis_6379 status //查看服务状态
安装php扩展
]# yum -y install php php-devel
]# tar -zxf php-redis-2.2.4.tar.gz
]# cd phpredis-2.2.4/
]# phpize
]# ./configure --with-php-config=/usr/bin/php-config
]# make ; make install
]# vim /etc/php.ini
728: extension_dir = "目录名"; //模块目录
730:extension="redis.so"; //模块名
]# systemctl restart php-fpm
测试配置
编写部署测试文件,查看访问结果
]# php -m | grep -i redis //检查是否支持模块
]# vim /usr/local/nginx/html/redis.php //编写测试脚本
<?php
$redis = new redis();
$redis -> connect("ip地址","端口");
$redis -> auth("密码");
$redis -> set("Linux","helloworld"); //存数据
echo $redis -> get("Linux"); //取数据
?>
]# curl http://localhost/redis.php
helloworld