LNMP+Redis 安装配置使用,今天整理了下.希望对大家有所帮助,有什么感想或问题都可以留言.
我的系统是Centos7.4
http://www.redis.cn/
可以下载最新稳定版本是Redis 4.0.9
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
这里用4.0.8版本的测试
++++>首先安装测试Redis
[root@host52 ~]# tar redis-4.0.8.tar.gz
[root@host52 ~]# cd redis-4.0.8/
[root@host52 redis-4.0.8]# make
.....
[root@host52 redis-4.0.8]# make install
++配置
//接着上面步骤继续操作,这个程序是交互式配置初始目录等
[root@host52 redis-4.0.8]# ./utils/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] //设置运行程序存放位置
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
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
//以上标注项配置好后就会自动开启服务,回车键选择默认端口或目录等
以下是默认程序相关文件存放位置
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
-------
常用配置选项
vim /etc/redis/6379.conf
– port 6379 // 端口
//注意事项,如果改了端口起服务后,要关闭时就不能正常脚本停止了,有两种方式停止服务
//一是改redis_6379脚本里指定的端口,
//二是[root@host52 /]# redis-cli -p 6352 shutdown这种方式停,
//三就是用kill -9 进程号
//重开启服务依然是可以用脚本启动
– bind 127.0.0.1 //IP 地址
– tcp-backlog 511 //tcp 连接总数(正在连接和已连接的总数)
– timeout 0 // 连接超时时间 0指永不超时
– tcp-keepalive 300 // 长连接时间
– daemonize yes // 守护进程方式运行
– databases 16 // 数据库个数
– logfile /var/log/redis_6379.log //pid 文件
– maxclients 10000 // 并发连接数量
– dir /var/lib/redis/6379 // 数据库目录
• 内存清除策略(->注释说明文件)
–> volatile-lru 最近最少使用 (针对设置了过期时间的 key )
–> allkeys-lru 删除最少使用的 key
–> volatile-random 在设置了过期的 key 里随机移除
–> allkeys-random 随机移除 key
–> volatile-ttl (minor TTL) 移除最近过期的 key
–> noeviction 不删除 写满时报错
–591 # maxmemory-policy noeviction //591行那里设置内存清除策略 默认noeviction
内存管理
• 选项默认设置
– maxmemory <bytes> // 最大内存
– maxmemory-policy noeviction // 定义使用的策略
– maxmemory-samples 5 // 选取模板数据的个数
设置登陆密码
– 501 # requirepass foobared //501行设置服务的登陆密码
//以上没指定行数的,可以在vim里搜索关键字查找
//如果设置了密码,关服务方式是[root@host52 /]# redis-cli -p 6352 -a 123123 shutdown
//重开启服务依然是可以用脚本启动
++启服务查状态
[root@host52 /]# /etc/init.d/redis_6379 --help //服务在这里操作
Please use start, stop, restart or status as first argument
[root@host52 /]# ln -s /etc/init.d/redis_6379 /sbin/ //创建快捷链接,方便操作
[root@host52 /]# redis_6379 status
Redis is running (5461)
[root@host52 /]# redis-cli //进入程序内部命令操作
127.0.0.1:6379>
++使用
--常用命令
常用操作指令(支持自动补全)
– Set keyname keyvalue // 存储
– get keyname // 获取
– Select 数据库编号 0-15 // 切换库(默认0-15,可以修改配置文件改范围)
– Keys * // 打印所以变量
– Keys a? // 打印指定变量 ?通配符,一个?号代表一个字符
– EXISTS keyname // 测试是否存在
– ttl keyname // 查看生存时间
– type keyname // 查看类型
– move keyname dbname // 移动变量
– expire keyname 10 // 设置有效时间
– del keyname // 删除变量
– flushall // 删除所有变量
– save // 保存变量
– shutdown // 关闭服务
-->示例
[root@host52 /]# redis-cli
127.0.0.1:6379> set name jim //set设置变量name值为jim
OK
127.0.0.1:6379> get name //get获取变量值
"jim"
127.0.0.1:6379> keys * //查看当前库所有变量
1) "name"
127.0.0.1:6379> keys n??? //查找n开头的四个字符长度的变量值,使用?通配符
1) "name"
127.0.0.1:6379> EXISTS name //查看变量是否存在,1表示存在 0表示不存在
(integer) 1
127.0.0.1:6379> type name //查看变量类型,默认都是字符类型
string
127.0.0.1:6379> TTL name //查看变量生存时间
(integer) -1
127.0.0.1:6379> SELECT 3 //选择数据库3
OK
127.0.0.1:6379[3]> KEYS * //查看所有变量,这个库里未设置有变量,所以是空的
(empty list or set)
----+
在设置有密码时,可以在登陆时写密码,或在登陆后输入密码
[root@host52 /]# redis-cli -p 6352 -a 123123
127.0.0.1:6352>
[root@host52 /]# redis-cli -p 6352
127.0.0.1:6352> auth 123123
OK
++++>然后安装LNMP测试
(我的系统是centos7/yum包也是centos7的)
安装源码nginx和php[root@host52 ~]# yum -y install gcc gcc-c++ pcre-devel zlib-devel
.....
[root@host52 ~]# tar -xf nginx-1.14.0.tar.gz
[root@host52 ~]# cd nginx-1.14.0/
[root@host52 nginx-1.14.0]# useradd nginx
...
[root@host52 nginx-1.14.0]# # ./configure --user=nginx --group=nginx
......
[root@host52 nginx-1.14.0]# make && make install
......
[root@host52 /]# yum -y install php php-common //php-common需要网上下载
[root@host52 /]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm //需要网上下载
.....
安装 php 支持 Redis 依赖包等
[root@host52 /]# yum -y install autoconf automake
...
[root@host52 /]# yum -y install php-devel-5.4.16-42.el7.x86_64.rpm //需要网上下载
...
[root@host52 /]# tar -zxf php-redis-2.2.4.tar.gz //需要网上下载
[root@host52 /]# cd phpredis-2.2.4/
[root@host52 phpredis-2.2.4/]# /usr/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@host52 phpredis-2.2.4]# ./configure --with-php-config=/usr/bin/php-config
...
[root@host52 phpredis-2.2.4]# make install
..
Installing shared extensions: /usr/lib64/php/modules/ //模块存放目录,支持php对redis的操作
[root@host52 /]# vim /etc/php.ini
...
extension_dir = "/usr/lib64/php/modules/" //在php.ini配置文件中指定那个模块存放路径
extension = "redis.so" //extension_dir=改成extension =
...
[root@host52 /]# php -m | grep -i redis //检测是否配置成功 php -m查看php支持的功能模块
redis
开始测试
[root@host52 /]# vim /usr/local/nginx/html/redis.php //编写一个PHP测试网页
<?php
$redis = new redis(); //创建redis()对像
$redis->connect('127.0.0.1',6352); //根据自己实际情况填写IP和端口
$redis->set('label','nice'); //创建一个redis变量并同赋值
echo $redis->get('label'); //获取redis变量
?>
http://192.168.0.52/redis.php //打开浏览器测试,记得要确保nginx, php-fpm, redis服务的开启
nice
-----
127.0.0.1:6352> get label //再登陆进redis端查看
"nice"
--至此LNMP+Redis配置成功了,有什么感想或问题都可以留言.