Redis安装部署
1 概要
Redis服务器环境的安装。指导系统部署和维护使用,
以64位Linux环境下安装使用
Redis 的详细介绍:请点这里
Redis 的下载地址:请点这里
推荐阅读:
2 缩略语和术语
缩略语/术语 | 全称 | 说明 |
append only file(aof) | 全持久化模式 | |
<REDIS_FILE> | Redis解压目录 | |
<REDIS_HOME> | Redis安装目录 |
3 要求
编译Redis的要求如下:
磁盘空间
必须保证有50G以上的临时磁盘自由空间。Redis安装完毕后会占据10MB左右的空间,实际磁盘需求会因编译设置和是否安装第三方模块而有所不同。
4 升级注意事项
如果Redis已经安装过,请先备份原Redis的所有配置文件,即<REDIS_HOME>目录下的所有文件
5 操作步骤说明
5.1 安装前环境说明
N/A
5.2 下载
Redis可以到官方网站:http://www.redis.io/download下载
本文档用http://redis.googlecode.com/files/redis-2.4.14.tar.gz稳定版。
Win版下载地址:https://github.com/dmajkic/redis/downloads
5.3 Redis 介绍
Redis是Remote Dictionary Server的缩写。他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力。
目录结构:
根目录下:
redis.conf 默认配置文件
Src目录:
make命令执行完成后,会在src目录下生成5个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump,各命令详情请参考5.7redis命令详解
5.4 解压
解压Redis的tar包很简单:
tar -zxvf redis-2.8.5.tar.gz
这样就在当前目录下新建了一个包含发行版源代码的目录,必须cd进入这个目录以继续服务器的编译。
5.5 编译及安装
进入redis解压目录,执行如下命令编译Redis:
cd <REDIS_FILE>
make
5.6 配置
接着,复制redis.conf到<REDIS_HOME>/conf/下,修改配置文件,来配置Redis服务器。
vi <REDIS_HOME>/conf/redis.conf
我们一般只需要作简单的配置,参考 7 Redis说明
查看配置文件:grep -v '^#\|^$' redis.conf
需设置内核针对内存分配的策略:6.6调整overcommit_memory参数
5.7 设置环境变量
进入当前用户主目录:
vi .bash_profile
PATH=$PATH:.:$<REDIS_HOME>/bin:$PATH
保存后执行如下命令
. .bash_profile
退出终端后,重新登录后查看环境变量是否生效
5.8 启动、停止重新加载Redis配置
进入<REDIS_HOME>的bin目录下。
5.8.1 启动Redis服务器
命令:
cd <REDIS_HOME>/bin
redis-server conf/redis.conf
注:此命令仅有一个启动参数,指定<REDIS_FILE>目录下的配置文件,不加参数执行默认配置。
测试启动 redis-cli ping 返回PONG,启动成功。
查看端口是否被占用:netstat –ntlp |grep 6379
5.8.2 停止Redis
关闭服务
redis-cli shutdown
如果非默认端口,可指定端口:
redis-cli -p 6380 shutdown
5.8.3 连接Redis
两种连接方式:
1:window DOS方式:tentel主机IP端口号(默认为127.0.0.1:6379)
2:linux客户端方式:redis-cli 主机IP 端口号(默认为127.0.0.1 6379)
5.9 redis常用命令详解
5.9.1 redis-benchmark
Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。
redis的基准信息和性能检测。
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能
./redis-benchmark -n 100000 –c 50
====== –c 50 ======
100000 requests completed in 1.93 seconds (100000个请求完成于 1.93 秒 )
50 parallel clients (每个请求有50个并发客户端)
3 bytes payload (每次写入3字节)
keep alive: 1 (保持1个连接)
58.50% <= 0 milliseconds
99.17% <= 1 milliseconds
99.58% <= 2 milliseconds
99.85% <= 3 milliseconds
99.90% <= 6 milliseconds
100.00% <= 9 milliseconds
(所有请求在62毫秒内完成)
114293.71 requests per second(每秒 114293.71 次查询)
redis-benchmark参数 | |
-h | 设置检测主机IP地址,默认为127.0.0.1 |
-p | 设置检测主机的端口号,默认为6379 |
-s<socket> | 服务器套接字(压倒主机和端口) |
-c | 并发连接数 |
-n | 请求数 |
-d | 测试使用的数据集的大小/字节的值(默认3字节) |
-k | 1:表示保持连接(默认值)0:重新连接 |
-r | SET/GET/INCR方法使用随机数插入数值,设置10则插入值为rand:000000000000 - rand:000000000009 |
-P | 默认为1(无管道),当网络延迟过长时,使用管道方式通信(请求和响应打包发送接收) |
-q | 简约信息模式,只显示查询和秒值等基本信息。 |
--csv | 以CSV格式输出信息 |
-l | 无线循环插入测试数据,ctrl+c停止 |
-t<tests> | 只运行<tests>测试逗号分隔的列表命令,如:-t ping,set,get |
-I | 空闲模式。立即打开50个空闲连接和等待<span "="" style="word-wrap: break-word;">。 |
例子: $ redis-benchmark基本测试 $ redis-benchmark -h 192.168.1.1 -p 6379 -n 100000 -c 20 $ redis-benchmark -t set -n 1000000 -r 100000000 $ redis-benchmark -t ping,set,get -n 100000 –csv $ redis-benchmark -r 10000 -n 10000 lpush mylist ele:rand:000000000000 |
5.9.2 redis-server
Redis服务器的daemon启动程序
redis-server 启动并加装默认配置文件[/path/to/redis.conf]
redis-server /biran/conf/redis.conf 启动并加装指定配置文件
redis-server - (read config from stdin) 使用标准输入读取配置为启动参数
redis-server --test-memory 256 检测256MB内存
redis-server –version 查版本号
5.9.3 redis-cli
Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
可输入redis-cli直接进入命令行操作界面。
redis-cli参数 | |
-h | 设置检测主机IP地址,默认为127.0.0.1 |
-p | 设置检测主机的端口号,默认为6379 |
-s<socket> | 服务器套接字(压倒主机和端口) |
-a | 连接到Master服务器时使用的密码 |
-r | 执行指定的N次命令 |
-i | 执行命令后等待N秒,如–i 0.1 info(执行后等0.1秒) |
-n | 指定连接N号ID数据库,如–n 3(连接3号数据库) |
-x | 从控制台输入的信息中读取最后一个参数 |
-d | 定义多个定界符为默认输出格式(默认: \n) |
--raw | 使用原数据格式返回输出内容 |
--latency | 进入一个不断延时采样的特殊模式 |
--slave | 模拟一个从服务器到主服务器的命令显示反馈 |
--pipe | 使用管道协议模式 |
--bigkeys | 监听显示数据量大的key值,--bigkeys -i 0.1 |
--help | 显示命令行帮助信息 |
--version | 显示版本号 |
例子: $ redis-cli进入命令行模式 $ redis-cli -r 3 info 重复执行info命令三次 $ cat testStr.txt | redis-cli -x set testStr读取testStr.txt文件所有内容设置为testStr的值 $ redis-cli -r 100 lpush mylist x $ redis-cli -r 100 -i 1 info | grep used_memory_human |