Redis安装部署.docx

上传人:b****7 文档编号:24049983 上传时间:2023-05-23 格式:DOCX 页数:34 大小:35.54KB
下载 相关 举报
Redis安装部署.docx_第1页
第1页 / 共34页
Redis安装部署.docx_第2页
第2页 / 共34页
Redis安装部署.docx_第3页
第3页 / 共34页
Redis安装部署.docx_第4页
第4页 / 共34页
Redis安装部署.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

Redis安装部署.docx

《Redis安装部署.docx》由会员分享,可在线阅读,更多相关《Redis安装部署.docx(34页珍藏版)》请在冰豆网上搜索。

Redis安装部署.docx

Redis安装部署

1       概要

Redis服务器环境的安装。

指导系统部署和维护使用,

以64位Linux环境下安装使用

2       缩略语和术语

缩略语/术语

全  称

说  明

appendonlyfile(aof)

全持久化模式

 

Redis解压目录

 

Redis安装目录

 

 

 

3       要求

编译Redis的要求如下:

磁盘空间

必须保证有50G以上的临时磁盘自由空间。

Redis安装完毕后会占据10MB左右的空间,实际磁盘需求会因编译设置和是否安装第三方模块而有所不同。

4      升级注意事项

如果Redis已经安装过,请先备份原Redis的所有配置文件,即目录下的所有文件

5        操作步骤说明

5.1   安装前环境说明

N/A

5.2   下载

Redis可以到官方网站:

http:

//www.redis.io/download下载

本文档用

Win版下载地址:

5.3   Redis 介绍

Redis是RemoteDictionaryServer的缩写。

他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是orderedsets(被排序的集合),所有的数据类型都具有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-zxvfredis-2.4.14.tar.gz 

这样就在当前目录下新建了一个包含发行版源代码的目录,必须cd进入这个目录以继续服务器的编译。

5.5   编译及安装

进入redis解压目录,执行如下命令编译Redis:

cd

make test  

makeprefix=install

安装tcmalloc包需指定参数,如makeUSE_TCMALLOC=yesFORCE_LIBC_MALLOC=yes

因为对一个基本的配置的编译,一般需要1分钟左右的时间,实际需要的时间因你的硬件和选择的模块数量会有很大不同。

5.6   配置

接着,复制redis.conf到/conf/下,修改配置文件,来配置Redis服务器。

 vi/conf/redis.conf

我们一般只需要作简单的配置,参考 7Redis说明

查看配置文件:

grep-v'^#\|^$'redis.conf

需设置内核针对内存分配的策略:

6.6调整overcommit_memory参数

5.7   设置环境变量

进入当前用户主目录:

vi.bash_profile

PATH=$PATH:

.:

$/bin:

$PATH

保存后执行如下命令

 ..bash_profile

退出终端后,重新登录后查看环境变量是否生效

5.8   启动、停止重新加载Redis配置

进入的bin目录下。

5.8.1       启动Redis服务器

命令:

      cd/bin

redis-serverconf/redis.conf

注:

此命令仅有一个启动参数,指定目录下的配置文件,不加参数执行默认配置。

测试启动redis-cliping返回PONG,启动成功。

查看端口是否被占用:

netstat–ntlp|grep6379  

5.8.2       停止Redis

关闭服务

redis-clishutdown

如果非默认端口,可指定端口:

redis-cli-p6380shutdown

5.8.3       连接Redis

两种连接方式:

1:

windowDOS方式:

tentel主机IP端口号(默认为127.0.0.1:

6379)

2:

linux客户端方式:

redis-cli 主机IP 端口号(默认为127.0.0.16379)

5.9   redis常用命令详解

5.9.1       redis-benchmark

Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能。

redis的基准信息和性能检测。

redis-benchmark-hlocalhost-p6379-c100-n100000

100个并发连接,100000个请求,检测host为localhost端口为6379的redis服务器性能

./redis-benchmark -n 100000 –c 50

    ======–c50======

    100000requestscompletedin1.93seconds(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

服务器套接字(压倒主机和端口)

-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

只运行测试逗号分隔的列表命令,如:

-tping,set,get

-I

空闲模式。

立即打开50个空闲连接和等待。

例子:

$redis-benchmark基本测试

$redis-benchmark-h192.168.1.1-p6379-n100000-c20

$redis-benchmark-tset-n1000000-r100000000

$redis-benchmark-tping,set,get-n100000–csv

$redis-benchmark-r10000-n10000lpushmylistele:

rand:

000000000000

 

 

 

5.9.2       redis-server

Redis服务器的daemon启动程序

redis-server        启动并加装默认配置文件[/path/to/redis.conf]

redis-server        /biran/conf/redis.conf启动并加装指定配置文件

redis-server-(readconfigfromstdin) 使用标准输入读取配置为启动参数

redis-server--test-memory256检测256MB内存

redis-server–version查版本号

5.9.3       redis-cli

Redis命令行操作工具。

当然,你也可以用telnet根据其纯文本协议来操作

可输入redis-cli直接进入命令行操作界面。

redis-cli参数

-h

设置检测主机IP地址,默认为127.0.0.1

-p

设置检测主机的端口号,默认为6379

-s

服务器套接字(压倒主机和端口)

-a

连接到Master服务器时使用的密码

-r

执行指定的N次命令

-i

执行命令后等待N秒,如–i0.1info(执行后等0.1秒)

-n

指定连接N号ID数据库,如 –n3(连接3号数据库)

-x

从控制台输入的信息中读取最后一个参数

-d

定义多个定界符为默认输出格式(默认:

\n)

--raw

使用原数据格式返回输出内容

--latency

进入一个不断延时采样的特殊模式

--slave

模拟一个从服务器到主服务器的命令显示反馈

--pipe

使用管道协议模式

--bigkeys

监听显示数据量大的key值,--bigkeys-i0.1 

--help

显示命令行帮助信息

--version

显示版本号

例子:

$ redis-cli进入命令行模式

$redis-cli-r3info 重复执行info命令三次

$cattestStr.txt|redis-cli-xsettestStr读取testStr.txt文件所有内容设置为testStr的值

$redis-cli-r100lpushmylistx

$ redis-cli-r100-i1info|grepused_memory_human

 

5.9.4       redis-check-aof

更新日志检查,加--fix参数为修复log文件

redis-check-aofappendonly.aof

5.9.5       redis-check-dump

检查本地数据库文件

redis-check-dump dump.rdb

 

5.9.6       查看、删除key信息

redis-clikeys\*  #查看所有键值信息

redis-cli-n1keys"test*"|xargsredis-cli-n1del删除DBID为1的test开头的key值

5.9.7       获取服务器的信息和统计

redis-cliinfo查询系统信息。

默认为localhost,端口为6379。

redis-cli-p6379info| grep'\' 过滤查询used_memory属性

当used_memory_rss接近maxmemory或者used_memory_peak超过maxmemory时,要加大maxmemory 负责性能下降

redis服务的统计信息:

redis_version:

2.4.14

Redis版本号

redis_git_sha1:

00000000

 

redis_git_dirty:

0

Git版本?

arch_bits:

64

64位系统

multiplexing_api:

epoll

 

gcc_version:

4.1.2

gcc版本号

process_id:

5551

当前服务器进程id

uptime_in_seconds:

1538

正常工作时间(秒)

uptime_in_days:

0

正常工作天数

lru_clock:

1975799

 

used_cpu_sys:

0.04

Cpu使用率

used_cpu_user:

0.09

 

used_cpu_sys_children:

0.01

 

used_cpu_user_children:

0.04

 

connected_clients:

2

客户端连接数

connected_slaves:

0

从服务器连接数

client_longest_output_list:

0

 

client_biggest_input_buf:

0

 

blocked_clients:

0

锁定的客户端

used_memory:

3765272

redis数据占用的内存,单位bytes(字节)

used_memory_human:

3.59M

重点关注!

used_memory_rss:

4665344

redis占用的物理内存

used_memory_peak:

3756712

redis使用物理内存的峰值

used_memory_peak_human:

3.58M

 

mem_fragmentation_ratio:

1.24

内存碎片率

mem_allocator:

jemalloc-2.2.5

内存分配器版本

loading:

0

 

aof_enabled:

0

是否开启纯累加模式

changes_since_last_save:

0

 

bgsave_in_progress:

0

后台异步保存数据的进程数

last_save_time:

1340962658

 

bgrewriteaof_in_progress:

0

异步重写 AOF 文件以反应当前数据库的状态的进程数

total_connections_received:

3

接受到的总连接数

total_commands_processed:

10156

服务器处理的命令数量

expired_keys:

0

失效key的总数量

evicted_keys:

0

已删除的key的总数量

keyspace_hits:

0

Key命中次数

keyspace_misses:

0

Key未命中次数

pubsub_channels:

0

订阅信息

pubsub_patterns:

0

 

latest_fork_usec:

579

最近子进程

vm_enabled:

0

是否使用虚拟内存0:

不使用,1:

使用

role:

slave

master为主服务器slave为从服务器

master_host:

127.0.0.1

连接主服务器IP

master_port:

6379

连接主服务器端口号

master_link_status:

up

 

master_last_io_seconds_ago:

2

距离最后一次的连接时间

master_sync_in_progress:

0

同步主服务器进程数

db0:

keys=3,expires=0

1号数据库保存的key数量,及超时时间

db1:

keys=1,expires=0

2号数据库保存的key数量,及超时时间

 

5.9.8       Redis的query分析

redis-faina(是由Instagram开发并开源的一个Redis查询分析小工具,需安装python环境。

redis-faina是通过Redis的MONITOR命令来实现的,通过对在Redis上执行的query进行监控,统计出一段时间的query特性,需root权限。

通过管道从stdin读取N条命令,直接分析

redis-cli-p6439monitor |head-n|./redis-faina.py

从一个文件中读取117773条命令,再分析

redis-cli-p6439monitor |head-n117773>/tmp/outfile.txt

./redis-faina.py/tmp/outfile.txt

其输出结果如下:

OverallStats

========================================

LinesProcessed    117773

Commands/Sec       11483.44

TopPrefixes(按key前缀统计)

========================================

friendlist         69945

followedbycounter  25419

followingcounter   10139

recentcomments     3276

queued             7

TopKeys(操作最频繁的key)

========================================

friendlist:

zzz:

1:

2    534

followingcount:

zzz    227

friendlist:

zxz:

1:

2    167

friendlist:

xzz:

1:

2    165

friendlist:

yzz:

1:

2    160

friendlist:

gzz:

1:

2    160

friendlist:

zdz:

1:

2    160

friendlist:

zpz:

1:

2    156

TopCommands(执行最多的命令)

========================================

SISMEMBER  59545

HGET       27681

HINCRBY    9413

SMEMBERS   9254

MULTI      3520

EXEC       3520

LPUSH      1620

EXPIRE     1598

CommandTime(microsecs)(命令执行时长)

========================================

Median     78.25

75%        105.0

90%        187.25

99%        411.0

HeaviestCommands(microsecs)(耗时最多的命令)

========================================

SISMEMBER  5331651.0

HGET       2618868.0

HINCRBY    961192.5

SMEMBERS   856817.5

MULTI      311339.5

SADD       54900.75

SREM       40771.25

EXEC       28678.5

SlowestCalls(最慢的命令)

========================================

3490.75    "SMEMBERS""friendlist:

zzz:

1:

2"

2362.0     "SMEMBERS""friendlist:

xzz:

1:

3"

2061.0     "SMEMBERS""friendlist:

zpz:

1:

2"

1961.0     "SMEMBERS""friendlist:

yzz:

1:

2"

1947.5     "SMEMBERS""friendlist:

zpz:

1:

2"

1459.0     "SISMEMBER""friendlist:

hzz:

1:

2""zzz"

1416.25    "SMEMBERS""friendlist:

zhz:

1:

2"

1389.75    "SISMEMBER""friendlist:

zzx:

1:

2""zzz"

从上面结果我们可以看到对Redis的操作规律,比如针对哪些key在进行操作,进行了什么操作,这些操作的效率如何等相关有用信息。

由于Redis的MONITOR也对性能有所影响,所以建议在使用时不要一直开启MONITOR来分析。

可以采用定时抽样一段时间来做样本分析。

 

5.10     创建主从服务器

5.10.1 配置主从服务器

方式可以有2种:

1 master->slave,2 master->slave->slave->slave..

一个集群可以包含最多4096个节点(主节点master和从节点slave),建议最多设置几百个节点

进入Redis安装目录,创建主从配置文件

 cd

创建主从服务器工作目录及对应的配置、日志等目录,服务器目录创建规则

名称+编号+端口号

 

 

Master100_6379

主服务器

 

Slave101_6380

从服务器

对应Master100的从服务器

Master200_6381

主服务器

 

Slave201_6382

从服务器

对应Master200的从服务器

 

 mkdirMaster100_6379Slave101_6380

 mkdirMaster100_6379/confMaster100_6379/logMaster100_6379/data

 mkdirSlave101_6380/confSlave101_6380/logSlave101_6380/data

复制配置文件到服务器的conf目录

cpredis.confMaster100_6379/conf/redis.conf

cpredis.conf Slave101_6380/conf/slave.conf

修改主服务器配置文件:

pidfile/redis/redis/Master100_6379/run/redis_Master100_6379.pid

port6379

logfile/redis/redis/Master100_6379/log/stdout.log

dbfilename/redis/redis/Master100_6379/data/dump.rdb

appendfilename/redis/redis/Master100_6379/log//appendonly.aof

修改从服务器配置文件:

pidfile/redis/redis/Slave101_6380/run/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1