- 浏览: 622151 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (334)
- java core (12)
- struts2.x (2)
- spring (3)
- hibernate (8)
- jpa (6)
- maven (2)
- osgi (5)
- eclipse (4)
- struts2.x+spring2.x+hibernate 整合 (5)
- ebs (0)
- html (0)
- vaadin (1)
- css (0)
- jquery (0)
- javascript (0)
- svn (1)
- cvs (0)
- axas2.x (0)
- eclipse+maven (9)
- annotation (0)
- 基于OSGi的动态化系统搭建 (1)
- notenet (1)
- jboss eclipse (4)
- eclipse工具 (4)
- jdk1.6+maven3.0.3+nuxeo+svn+felix+cxf+spring+springDM (6)
- spring dm (1)
- Nexus介绍 (1)
- proxool listener (0)
- oracle (4)
- mysql (8)
- 搭建你的全文检索 (1)
- hibernatehibernatehibernate (0)
- cvsearchcvsearch (0)
- mycvseach (0)
- asdfasdfasdf (0)
- propertiey (0)
- hibernate annotation (0)
- libs (0)
- icam (2)
- start 数据库配置 (0)
- jboss (1)
- 让Eclipse启动时显示选择workspace的对话框 (1)
- table表头固定 (1)
- s2s3h4 (0)
- leaver (0)
- mycvsaerchddd (0)
- 关于jboss5.0.1部署 (4)
- bookmarks (0)
- PersistenceUnitDeployment (0)
- mycom (0)
- HKEY_CURRENT_USER = &H80000001 (0)
- syspath (1)
- css div (1)
- Dreamweaver CS5 (0)
- generate (0)
- mysql查看表结构命令 (1)
- LOG IN ERROR EMAIL TO SB (0)
- struts2 handle static resource (1)
- jsf (2)
- log4j (1)
- jbpm4.4 (2)
- down: jbpm4.4 (1)
- jstl1.2 (1)
- spring annotation (1)
- java design pattern (1)
- cache (1)
- ehcache (1)
- 11111 (0)
- myge (0)
- pom.xml (0)
- springquartz (0)
- OpenStack (9)
- hadoop (2)
- nginx (1)
- hadoop openstack (1)
- os (1)
- hadoop-2.6.0 zookeeper-3.4.6 hbase-0.98.9-hadoop2 集群 (5)
- hadoop2.7.0 ha Spark (2)
- tess (0)
- system (1)
- asdf (0)
- hbase (2)
- hbase create table error (1)
- ekl (1)
- gitignore (1)
- gitlab-ci.yml (1)
- shell (1)
- elasticsearch (2)
- Azkaban 3.0+ (1)
- centos用命令 (1)
- hive (1)
- kafka (1)
- CaptureBasic (0)
- CentOS7 (1)
- dev tools (1)
- README.md (1)
- Error (1)
- teamviewerd.service (1)
- scala (1)
- spark (1)
- standard (1)
- gitlab (1)
- IDEA (0)
- ApplicationContext (1)
- 传统数仓 (1)
- redis install (1)
- MYSQL AND COLUME (1)
- java版本选择 (1)
- hue (1)
- npm (1)
- es (1)
- 版本管理 (1)
- 升级npm版本 (1)
- git (1)
- 服务器参数设置 (1)
- 调大 IDEA 编译内存大小 (0)
- CentOS8安装GitLab (1)
- gitlab安装使用 (1)
最新评论
-
ssydxa219:
vim /etc/security/limits.confvi ...
ekl -
Gamehu520:
table中无数据
hbase 出现的问题 -
Xleer0102:
为什么都是只有问没有答,哭晕在厕所
hbase 出现的问题 -
jiajiao_5413:
itext table -
CoderDream:
不完整,缺com.tcs.org.demostic.pub.u ...
struts2.3.1.1+hibernate3.6.9Final+spring3.1.0+proxool+maven+annotation
一、redis单实例搭建
1. 下载redis-5.0.4.tar.gz(最新稳定版本)
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
cp src/redis-benchmark /home/bin/redis/bin
cp src/redis-check-aof /home/bin/redis/bin
cp src/redis-check-rdb /home/bin/redis/bin
cp src/redis-cli /home/bin/redis/bin
cp redis.conf /home/bin/redis/bin
cp src/redis-sentinel /home/bin/redis/bin
cp src/redis-server /home/bin/redis/bin
ll redis/bin/
cd redis-6.0.8
mkdir -p /ddhome/bin/redis/bin
cp src/redis-benchmark /ddhome/bin/redis/bin
cp src/redis-check-aof /ddhome/bin/redis/bin
cp src/redis-check-rdb /ddhome/bin/redis/bin
cp src/redis-cli /ddhome/bin/redis/bin
cp redis.conf /ddhome/bin/redis/bin
cp src/redis-sentinel /ddhome/bin/redis/bin
cp src/redis-server /ddhome/bin/redis/bin
cp src/mkreleasehdr.sh /ddhome/bin/redis/bin
cp src/redis-check-dump /ddhome/bin/redis/bin
ps -ef | grep redis | awk '{print $2}' | xargs kill -9
vim redis.conf
config set protected-mode no
config get daemonize no
redis-cli
config set protected-mode no
config get daemonize no
redis-server > /ddhome/var/redis.log 2>&1 &
redis-server /ddhome/bin/redis/redis.conf > /ddhome/var/redis.log 2>&1 &
config get daemonize和config get protected-mode 是不是都为no,如果不是,就用config set 配置名 属性 改为no
redis-cli -h 127.0.0.1 -p 6379 -a "123456"
防火墙设置:
开放6379端口
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
保存配置
/etc/rc.d/init.d/iptables save
2. 解压源码进入目录
3. make
4. make test测试编译情况(可能出现:need tcl >8.4这种情况,解决方法yum install tcl)
5. 安装 make PREFIX=/usr/local/redis install
6. make install之后,redis目录下的bin会有如下几个文件
redis-benchmark 性能测试工具
redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复)
redis-check-rdb 快照文件检测工具,效果类上
redis-cli 客户端
redis-server 服务端
7. 复制配置文件
cp /redis-5.0.4/redis.conf /usr/local/redis
8. 编辑vim redis.conf
注释掉 bind 127.0.0.1 这个是 设置redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求。
将daemonize no 改为yes 让redis 以后台服务形式运行。
9. ./bin/redis-server redis.conf 启动redis
./bin/redis-cli 客户端连接
二、redis的三种集群方式
1. redis主从集群配置
复制 redis.conf 为redis6380.conf
编辑 vim redis6380.conf
将端口改6380 并设置为6379的端口从服务器(原本使用的是slaveof,但因为有人提出slave是奴隶的意思冒犯到了别人就改成看了replicaof)。
如果主服务器设置了密码如requirepass yhd123 则yhd123就是服务器密码(这里并没有设置密码),那从服务器就得设置masterauth yhd123,设置从服务器为只读replica-read-only yes。
启动redis 服务,用客户端连接6380,输入info ,会发现6380端口的角色role是slave。而6379端口的role是master,并且有一个slave。
2. 哨兵主从集群配置
因为主从集群的情况下 如果master突然挂掉,除非手动将slave设置为master,再将其他slave连接到新的master,否则整个集群都不再工作,为了保证在master挂掉的情况下,集群继续工作,需要用到哨兵模式sentinel自动设置master并且slave连接上新master。
配置哨兵。
cp /usr/local/redis-5.0.4/sentinel.conf /usr/locla/redis
编辑 vim sentinel.conf 设置后台服务运行
当2个sentinel实例都认为master失效时,正式失效。
启动./bin/redis-server sentinel.conf --sentinel 如需配置哨兵集群,按以上方式使用多个配置文件监控同一个主节点即可。
三、redis-cluster 多主多从集群配置
编辑 vim redis.conf
cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败。
创建6个实列,我这里是3台服务器 2个端口6个实例,然后将每个实例启动会生产节
点nodes-*.conf文件。
执行命令创建命令redis-cli --cluster create ip:6379 ip:6380 ip1:6379 ip1:6380 ip2:6379 ip2:6380 --cluster-replicas 1
创建多主多从必须有 --cluster-replicas 1 ,不然就是6个master。
用redis客户端连接集群./bin/redis-cli -c输入命令查看集群信息。
查看集群节点cluster nodes,会看到对应master-slave,这样集群就搭建完毕了。任一主节点故障以后,从节点都会变为主节点,如果所有主从节点都故障则集群失效。
四、备份(持久化)
1. rdb持久化
save 900 1 // 900内,有1条写入,则产生快照
save 300 1000 // 如果300秒内有1000次写入,则产生快照
save 60 10000 // 如果60秒内有10000次写入,则产生快照
(这3个选项都屏蔽,则rdb禁用)
stop-writes-on-bgsave-error yes // 后台备份进程出错时,主进程停不停止写入?
rdbcompression yes // 导出的rdb文件是否压缩
Rdbchecksum yes // 导入rbd恢复时数据时,要不要检验rdb的完整性
dbfilename dump.rdb //导出来的rdb文件名
dir ./ //rdb的放置路径
2. aof持久化
appendonly no # 是否打开 aof日志功能
Appendfilename #导出来的aof文件名
appendfsync always # 每1个命令,都立即同步到aof. 安全,速度慢
appendfsync everysec # 折衷方案,每秒写1次
appendfsync no # 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快
no-appendfsync-on-rewrite no: # 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写
在集群里面只要一启动,只要rdb文件和aof没有丢失便会自动恢复,集群里面设置的备份方式为主aof 从 rdb+aof 。
五、运维
1. 在dump rdb过程中,aof如果停止同步,所有的操作缓存在内存的队列里, dump完成后,统一操作。
2. aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里.以解决 aof日志过大的问题。
3. 如果rdb文件,和aof文件都存在,优先用aof来恢复数据。
4. 恢复时rdb快,因为其是数据的内存映射,直接载入到内存,而aof是命令,需要逐条执行。
5. 运维的一些命令
BGREWRITEAOF 后台进程重写AOF
BGSAVE 后台保存rdb快照
SAVE 保存rdb快照
LASTSAVE 上次保存时间
Slaveof master-Host port , 把当前实例设为master的slave
Flushall 清空所有库所有键
Flushdb 清空当前库所有键
Showdown 关闭服务器
注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器
然后手工编辑aof文件,去掉文件中的 “flushall ”相关行,然后开启服务器,就可以导入回原来数据.如果,flushall之后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失.
Slowlog 显示慢查询
由slowlog-log-slower-than 10000,来指定多慢。(单位是微秒)
由 slowlog-max-len 128 ,来做限制服务器储存多少条慢查询的记录。
Info [Replication/CPU/Memory..]
查看redis服务器的信息
6.Redis运维时需要注意的参数
内存
# Memory
used_memory:859192 数据结构的空间
used_memory_rss:7634944 实占空间
mem_fragmentation_ratio:8.89 前2者的比例,1.N为佳,如果此值过大,说明redis的内存的碎片化严重,可以导出再导入一次.
主从复制
# Replication
role:slave
master_host:192.168.1.128
master_port:6379
master_link_status:up
持久化
# Persistence
rdb_changes_since_last_save:0
rdb_last_save_time:1375224063
fork耗时
#Status
latest_fork_usec:936 上次导出rdb快照,持久化花费微秒
注意: 如果某实例有10G内容,导出需要2分钟,
每分钟写入10000次,导致不断的rdb导出,磁盘始处于高IO状态.
慢日志
config get/set slowlog-log-slower-than
CONFIG get/SET slowlog-max-len
slowlog get N 获取慢日志
运行时更改master-slave
修改一台slave(设为A)为new master
1) 命令该服务不做其他redis服务的slave
命令: slaveof no one
2) 修改其readonly为yes
其他的slave再指向new master A
1) 命令该服务为new master A的slave
命令格式 slaveof IP port
安装Redis
下载:http://download.redis.io/redis-stable.tar.gz
上传redis-stable到/usr/local/src目录
cd /usr/local/src
tar -zxvf redis-stable.tar.gz #解压
mv redis-stable /usr/local/redis #移动文件到安装目录
cd /usr/local/redis #进入安装目录
make #编译
make install #安装
cd /usr/local/bin #查看是否有下面文件,如果没有,拷贝下面文件到/usr/local/bin目录
cd /usr/local/redis
mkdir -p /usr/local/bin
cp -p redis-server /usr/local/bin
cp -p redis-benchmark /usr/local/bin
cp -p redis-cli /usr/local/bin
cp -p redis-check-dump /usr/local/bin
cp -p redis-check-aof /usr/local/bin
ln -s /usr/local/redis/redis.conf /etc/redis.conf #添加配置文件软连接
vi /etc/redis.conf #编辑
daemonize yes #设置后台启动redis
:wq! #保存退出
redis-server /etc/redis.conf #启动redis服务
redis-cli shutdown #关闭redis
vi /etc/sysctl.conf #编辑,在最后一行添加下面代码
vm.overcommit_memory = 1
:wq! #保存退出
sysctl -p #使设置立即生效
4、设置redis开机启动
vi /etc/init.d/redis #编辑,添加以下代码
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# redis Startup script for redis processes
# processname: redis
redis_path="/usr/local/bin/redis-server"
redis_conf="/etc/redis.conf"
redis_pid="/var/run/redis.pid"
# Source function library.
. /etc/rc.d/init.d/functions
[ -x $redis_path ] || exit 0
RETVAL=0
prog="redis"
# Start daemons.
start() {
if [ -e $redis_pid -a ! -z $redis_pid ];then
echo $prog" already running...."
exit 1
fi
echo -n $"Starting $prog "
# Single instance for all caches
$redis_path $redis_conf
RETVAL=$?
[ $RETVAL -eq 0 ] && {
touch /var/lock/subsys/$prog
success $"$prog"
}
echo
return $RETVAL
}
# Stop daemons.
stop() {
echo -n $"Stopping $prog "
killproc -d 10 $redis_path
echo
[ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog
RETVAL=$?
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if test "x`pidof redis`" != x; then
stop
start
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 1
esac
exit $RETVAL
:wq! #保存退出
chmod 755 /etc/init.d/redis #添加脚本执行权限
chkconfig --add redis #添加开启启动
chkconfig --level 2345 redis on #设置启动级别
chkconfig --list redis #查看启动级别
service redis restart #重新启动redis
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接
5、设置redis配置文件参数
mkdir -p /usr/local/redis/var #创建redis数据库存放目录
vi /etc/redis.conf #编辑
daemonize yes #以后台daemon方式运行redis
pidfile "/var/run/redis.pid" #redis以后台运行,默认pid文件路径/var/run/redis.pid
port 6379 #默认端口
bind 127.0.0.1 #默认绑定本机所有ip地址,为了安全,可以只监听内网ip
timeout 300 #客户端超时设置,单位为秒
loglevel verbose #设置日志级别,支持四个级别:debug、notice、verbose、warning
logfile stdout #日志记录方式,默认为标准输出,logs不写文件,输出到空设备/deb/null
logfile "/usr/local/redis/var/redis.log" #可以指定日志文件路径
databases 16 #开启数据库的数量
save 900 1
save 300 10
save 60 10000
创建本地数据库快照,格式:save * *
900秒内,执行1次写操作
300秒内,执行10次写操作
60秒内,执行10000次写操作
rdbcompression yes #启用数据库lzf压缩,也可以设置为no
dbfilename dump.rdb #本地快照数据库名称
dir "/usr/local/redis/var/" #本地快照数据库存放目录
requirepass 123456 #设置redis数据库连接密码
maxclients 10000 #同一时间最大客户端连接数,0为无限制
maxmemory 1024MB #设定redis最大使用内存,值要小于物理内存,必须设置
appendonly yes #开启日志记录,相当于MySQL的binlog
appendfilename "appendonly.aof" #日志文件名,注意:不是目录路径
appendfsync everysec #每秒执行同步,还有两个参数always、no一般设置为everysec,相当于MySQL事物日志的写方式
:wq! #保存退出
service redis restart #重启
6、测试redis数据库
redis-cli -a 123456 #连接redis数据库,注意:-a后面跟redis数据库密码
set name osyunwei.com #写数据
get name #读取数据
exit #退出redis数据库控制台
redis-benchmark -h 127.0.0.1 -p 6379 -c 1000 -n 100000 #1000个并发连接,100000个请求,测试127.0.0.1端口为6379的redis服务器性能
1. 下载redis-5.0.4.tar.gz(最新稳定版本)
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
cp src/redis-benchmark /home/bin/redis/bin
cp src/redis-check-aof /home/bin/redis/bin
cp src/redis-check-rdb /home/bin/redis/bin
cp src/redis-cli /home/bin/redis/bin
cp redis.conf /home/bin/redis/bin
cp src/redis-sentinel /home/bin/redis/bin
cp src/redis-server /home/bin/redis/bin
ll redis/bin/
cd redis-6.0.8
mkdir -p /ddhome/bin/redis/bin
cp src/redis-benchmark /ddhome/bin/redis/bin
cp src/redis-check-aof /ddhome/bin/redis/bin
cp src/redis-check-rdb /ddhome/bin/redis/bin
cp src/redis-cli /ddhome/bin/redis/bin
cp redis.conf /ddhome/bin/redis/bin
cp src/redis-sentinel /ddhome/bin/redis/bin
cp src/redis-server /ddhome/bin/redis/bin
cp src/mkreleasehdr.sh /ddhome/bin/redis/bin
cp src/redis-check-dump /ddhome/bin/redis/bin
ps -ef | grep redis | awk '{print $2}' | xargs kill -9
vim redis.conf
config set protected-mode no
config get daemonize no
redis-cli
config set protected-mode no
config get daemonize no
redis-server > /ddhome/var/redis.log 2>&1 &
redis-server /ddhome/bin/redis/redis.conf > /ddhome/var/redis.log 2>&1 &
config get daemonize和config get protected-mode 是不是都为no,如果不是,就用config set 配置名 属性 改为no
redis-cli -h 127.0.0.1 -p 6379 -a "123456"
防火墙设置:
开放6379端口
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
保存配置
/etc/rc.d/init.d/iptables save
2. 解压源码进入目录
3. make
4. make test测试编译情况(可能出现:need tcl >8.4这种情况,解决方法yum install tcl)
5. 安装 make PREFIX=/usr/local/redis install
6. make install之后,redis目录下的bin会有如下几个文件
redis-benchmark 性能测试工具
redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复)
redis-check-rdb 快照文件检测工具,效果类上
redis-cli 客户端
redis-server 服务端
7. 复制配置文件
cp /redis-5.0.4/redis.conf /usr/local/redis
8. 编辑vim redis.conf
注释掉 bind 127.0.0.1 这个是 设置redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求。
将daemonize no 改为yes 让redis 以后台服务形式运行。
9. ./bin/redis-server redis.conf 启动redis
./bin/redis-cli 客户端连接
二、redis的三种集群方式
1. redis主从集群配置
复制 redis.conf 为redis6380.conf
编辑 vim redis6380.conf
将端口改6380 并设置为6379的端口从服务器(原本使用的是slaveof,但因为有人提出slave是奴隶的意思冒犯到了别人就改成看了replicaof)。
如果主服务器设置了密码如requirepass yhd123 则yhd123就是服务器密码(这里并没有设置密码),那从服务器就得设置masterauth yhd123,设置从服务器为只读replica-read-only yes。
启动redis 服务,用客户端连接6380,输入info ,会发现6380端口的角色role是slave。而6379端口的role是master,并且有一个slave。
2. 哨兵主从集群配置
因为主从集群的情况下 如果master突然挂掉,除非手动将slave设置为master,再将其他slave连接到新的master,否则整个集群都不再工作,为了保证在master挂掉的情况下,集群继续工作,需要用到哨兵模式sentinel自动设置master并且slave连接上新master。
配置哨兵。
cp /usr/local/redis-5.0.4/sentinel.conf /usr/locla/redis
编辑 vim sentinel.conf 设置后台服务运行
当2个sentinel实例都认为master失效时,正式失效。
启动./bin/redis-server sentinel.conf --sentinel 如需配置哨兵集群,按以上方式使用多个配置文件监控同一个主节点即可。
三、redis-cluster 多主多从集群配置
编辑 vim redis.conf
cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败。
创建6个实列,我这里是3台服务器 2个端口6个实例,然后将每个实例启动会生产节
点nodes-*.conf文件。
执行命令创建命令redis-cli --cluster create ip:6379 ip:6380 ip1:6379 ip1:6380 ip2:6379 ip2:6380 --cluster-replicas 1
创建多主多从必须有 --cluster-replicas 1 ,不然就是6个master。
用redis客户端连接集群./bin/redis-cli -c输入命令查看集群信息。
查看集群节点cluster nodes,会看到对应master-slave,这样集群就搭建完毕了。任一主节点故障以后,从节点都会变为主节点,如果所有主从节点都故障则集群失效。
四、备份(持久化)
1. rdb持久化
save 900 1 // 900内,有1条写入,则产生快照
save 300 1000 // 如果300秒内有1000次写入,则产生快照
save 60 10000 // 如果60秒内有10000次写入,则产生快照
(这3个选项都屏蔽,则rdb禁用)
stop-writes-on-bgsave-error yes // 后台备份进程出错时,主进程停不停止写入?
rdbcompression yes // 导出的rdb文件是否压缩
Rdbchecksum yes // 导入rbd恢复时数据时,要不要检验rdb的完整性
dbfilename dump.rdb //导出来的rdb文件名
dir ./ //rdb的放置路径
2. aof持久化
appendonly no # 是否打开 aof日志功能
Appendfilename #导出来的aof文件名
appendfsync always # 每1个命令,都立即同步到aof. 安全,速度慢
appendfsync everysec # 折衷方案,每秒写1次
appendfsync no # 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快
no-appendfsync-on-rewrite no: # 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写
在集群里面只要一启动,只要rdb文件和aof没有丢失便会自动恢复,集群里面设置的备份方式为主aof 从 rdb+aof 。
五、运维
1. 在dump rdb过程中,aof如果停止同步,所有的操作缓存在内存的队列里, dump完成后,统一操作。
2. aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里.以解决 aof日志过大的问题。
3. 如果rdb文件,和aof文件都存在,优先用aof来恢复数据。
4. 恢复时rdb快,因为其是数据的内存映射,直接载入到内存,而aof是命令,需要逐条执行。
5. 运维的一些命令
BGREWRITEAOF 后台进程重写AOF
BGSAVE 后台保存rdb快照
SAVE 保存rdb快照
LASTSAVE 上次保存时间
Slaveof master-Host port , 把当前实例设为master的slave
Flushall 清空所有库所有键
Flushdb 清空当前库所有键
Showdown 关闭服务器
注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器
然后手工编辑aof文件,去掉文件中的 “flushall ”相关行,然后开启服务器,就可以导入回原来数据.如果,flushall之后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失.
Slowlog 显示慢查询
由slowlog-log-slower-than 10000,来指定多慢。(单位是微秒)
由 slowlog-max-len 128 ,来做限制服务器储存多少条慢查询的记录。
Info [Replication/CPU/Memory..]
查看redis服务器的信息
6.Redis运维时需要注意的参数
内存
# Memory
used_memory:859192 数据结构的空间
used_memory_rss:7634944 实占空间
mem_fragmentation_ratio:8.89 前2者的比例,1.N为佳,如果此值过大,说明redis的内存的碎片化严重,可以导出再导入一次.
主从复制
# Replication
role:slave
master_host:192.168.1.128
master_port:6379
master_link_status:up
持久化
# Persistence
rdb_changes_since_last_save:0
rdb_last_save_time:1375224063
fork耗时
#Status
latest_fork_usec:936 上次导出rdb快照,持久化花费微秒
注意: 如果某实例有10G内容,导出需要2分钟,
每分钟写入10000次,导致不断的rdb导出,磁盘始处于高IO状态.
慢日志
config get/set slowlog-log-slower-than
CONFIG get/SET slowlog-max-len
slowlog get N 获取慢日志
运行时更改master-slave
修改一台slave(设为A)为new master
1) 命令该服务不做其他redis服务的slave
命令: slaveof no one
2) 修改其readonly为yes
其他的slave再指向new master A
1) 命令该服务为new master A的slave
命令格式 slaveof IP port
安装Redis
下载:http://download.redis.io/redis-stable.tar.gz
上传redis-stable到/usr/local/src目录
cd /usr/local/src
tar -zxvf redis-stable.tar.gz #解压
mv redis-stable /usr/local/redis #移动文件到安装目录
cd /usr/local/redis #进入安装目录
make #编译
make install #安装
cd /usr/local/bin #查看是否有下面文件,如果没有,拷贝下面文件到/usr/local/bin目录
cd /usr/local/redis
mkdir -p /usr/local/bin
cp -p redis-server /usr/local/bin
cp -p redis-benchmark /usr/local/bin
cp -p redis-cli /usr/local/bin
cp -p redis-check-dump /usr/local/bin
cp -p redis-check-aof /usr/local/bin
ln -s /usr/local/redis/redis.conf /etc/redis.conf #添加配置文件软连接
vi /etc/redis.conf #编辑
daemonize yes #设置后台启动redis
:wq! #保存退出
redis-server /etc/redis.conf #启动redis服务
redis-cli shutdown #关闭redis
vi /etc/sysctl.conf #编辑,在最后一行添加下面代码
vm.overcommit_memory = 1
:wq! #保存退出
sysctl -p #使设置立即生效
4、设置redis开机启动
vi /etc/init.d/redis #编辑,添加以下代码
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
# redis Startup script for redis processes
# processname: redis
redis_path="/usr/local/bin/redis-server"
redis_conf="/etc/redis.conf"
redis_pid="/var/run/redis.pid"
# Source function library.
. /etc/rc.d/init.d/functions
[ -x $redis_path ] || exit 0
RETVAL=0
prog="redis"
# Start daemons.
start() {
if [ -e $redis_pid -a ! -z $redis_pid ];then
echo $prog" already running...."
exit 1
fi
echo -n $"Starting $prog "
# Single instance for all caches
$redis_path $redis_conf
RETVAL=$?
[ $RETVAL -eq 0 ] && {
touch /var/lock/subsys/$prog
success $"$prog"
}
echo
return $RETVAL
}
# Stop daemons.
stop() {
echo -n $"Stopping $prog "
killproc -d 10 $redis_path
echo
[ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog
RETVAL=$?
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if test "x`pidof redis`" != x; then
stop
start
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 1
esac
exit $RETVAL
:wq! #保存退出
chmod 755 /etc/init.d/redis #添加脚本执行权限
chkconfig --add redis #添加开启启动
chkconfig --level 2345 redis on #设置启动级别
chkconfig --list redis #查看启动级别
service redis restart #重新启动redis
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接
5、设置redis配置文件参数
mkdir -p /usr/local/redis/var #创建redis数据库存放目录
vi /etc/redis.conf #编辑
daemonize yes #以后台daemon方式运行redis
pidfile "/var/run/redis.pid" #redis以后台运行,默认pid文件路径/var/run/redis.pid
port 6379 #默认端口
bind 127.0.0.1 #默认绑定本机所有ip地址,为了安全,可以只监听内网ip
timeout 300 #客户端超时设置,单位为秒
loglevel verbose #设置日志级别,支持四个级别:debug、notice、verbose、warning
logfile stdout #日志记录方式,默认为标准输出,logs不写文件,输出到空设备/deb/null
logfile "/usr/local/redis/var/redis.log" #可以指定日志文件路径
databases 16 #开启数据库的数量
save 900 1
save 300 10
save 60 10000
创建本地数据库快照,格式:save * *
900秒内,执行1次写操作
300秒内,执行10次写操作
60秒内,执行10000次写操作
rdbcompression yes #启用数据库lzf压缩,也可以设置为no
dbfilename dump.rdb #本地快照数据库名称
dir "/usr/local/redis/var/" #本地快照数据库存放目录
requirepass 123456 #设置redis数据库连接密码
maxclients 10000 #同一时间最大客户端连接数,0为无限制
maxmemory 1024MB #设定redis最大使用内存,值要小于物理内存,必须设置
appendonly yes #开启日志记录,相当于MySQL的binlog
appendfilename "appendonly.aof" #日志文件名,注意:不是目录路径
appendfsync everysec #每秒执行同步,还有两个参数always、no一般设置为everysec,相当于MySQL事物日志的写方式
:wq! #保存退出
service redis restart #重启
6、测试redis数据库
redis-cli -a 123456 #连接redis数据库,注意:-a后面跟redis数据库密码
set name osyunwei.com #写数据
get name #读取数据
exit #退出redis数据库控制台
redis-benchmark -h 127.0.0.1 -p 6379 -c 1000 -n 100000 #1000个并发连接,100000个请求,测试127.0.0.1端口为6379的redis服务器性能
相关推荐
Linux shell 一键安装配置redis 实现服务监控 宕机重启 开机自启 需在/home 录下解压运行 installRedis.sh 即可完成 ,可以在linux上安装lrzsz 在利用 SecureCRT.上传到Linux系统中
安装 1.下载redis(http://redis.io/) 2.上传到linux 3.在 usr/local下新建文件夹 redis mkdir /usr/local/redis ... make PREFIX=/usr/local/redis install 安装成功之后 在redis目录下多出来一个bin目录
make PREFIX=/usr/local/redis install 注: PREFIX要大写 7: 复制配置文件 cp redis.conf /usr/local/redis 注path为解压后的安装包路径 /root/gsj/redis-3.0.6 8: 让redis以后台进程的形式运行 vim /usr/local...
`redisInstall.sh`可能是初始化单节点Redis服务的脚本,而`redisInstall_hs.sh`可能用于部署具有高可用性的主从复制集群。执行这两个脚本之前,确保已正确配置了所有依赖和Redis实例。 6. **集群配置** - 在集群中...
`redisInstall.sh`和`rubyInstall.sh`是两个shell脚本,分别用于自动化安装Redis和Ruby。这两个脚本通常包含了解压、编译、配置和安装的步骤,用户只需运行脚本即可完成环境的搭建,极大地提高了效率。 `README.txt...
如果一切顺利,你可以通过`sudo make install`将Redis安装到系统默认路径(通常是`/usr/local/bin`)。 然而,通常我们并不推荐这样做,因为这可能会干扰其他软件。所以,通常我们会选择自定义安装路径。创建一个...
然后进入源码目录`src`,执行`make MALLOC=libc`编译,最后通过`make PREFIX=/usr/local/redis install`进行安装。为了使Redis正常运行,还需将配置文件`redis.conf`复制到安装目录,并修改配置文件以支持后台启动。...
切换到redis用户,进入下载的源码目录,执行make命令进行编译,之后使用make PREFIX=/data/redis install命令将编译后的二进制文件安装到指定位置。同时,将示例配置文件redis.conf复制到/data/redis/。 配置环境...
# make PREFIX=/usr/local/redis install ``` 安装完成后,`/usr/local/redis/bin` 目录下将包含 Redis 的可执行文件,如 `redis-benchmark`, `redis-check-aof`, `redis-check-dump`, `redis-cli`, `redis-server`...
[root@localhost redis-6.0.1]# make PREFIX=/usr/local/redis install ``` 在这个过程中,可能会遇到编译错误,例如: ```bash make[1]: *** [server.o] 错误 1 make[1]: 离开目录“/usr/redis-6.0.1/src” make:...
make PREFIX=/usr/local/redis install ``` 4. **配置文件准备**: - 创建必要的目录结构,并复制配置文件。 ```bash mkdir /usr/local/redis/etc cp redis.conf /usr/local/redis/etc/ ``` 5. **启动Redis...
- 安装到指定路径:`make prefix=/usr/local/redis install`。 2. **配置Redis服务**: - 拷贝`redis.conf`到安装的Redis目录下的bin同级目录:`cp redis.conf /usr/local/redis/bin/`。 - 修改`redis.conf`文件...
# make PREFIX=/usr/local/redis install ``` 安装完成后,可以在`/usr/local/redis/bin`目录下看到一系列Redis相关的命令脚本,如: - `redis-benchmark`: 测试Redis性能的工具 - `redis-check-aof`: 检查AOF文件...
- 解决方案:在编译时加入`MALLOC=libc`参数,即`make PREFIX=/usr/local/redis MALLOC=libc install`。 ##### 3.3 配置 1. **内存分配策略**:根据服务器实际情况设置内存分配策略。例如,可以将`/proc/sys/vm/...
make PREFIX=/usr/local/redis install ``` 6. **复制配置文件**:将`redis-3.0.0`目录下的`redis.conf`文件复制到安装目录下的`bin`目录中。 ```bash cp redis.conf /usr/local/redis/bin/ ``` ##### 3.2 ...
make PREFIX=/usr/local/redis install ``` 5. **启动Redis**: 将Redis服务添加到系统服务,然后启动: ```shell sudo cp utils/redis_init_script /etc/init.d/redis sudo chmod +x /etc/init.d/redis sudo ...
- 安装Redis:`make PREFIX=/usr/local/redis install` #### 3. 创建配置文件及目录结构: - 将Redis的配置文件`redis.conf`复制到`/usr/local/redis/`目录下,并对其中的`daemonize no`进行修改,将其改为`...
- 编译完成后,使用`make PREFIX=/usr/local/redis install`进行安装,这里的`/usr/local/redis`为安装路径。 #### 二、Redis 配置 ##### 2.1 创建必要目录 - **创建文件夹**:在安装路径下创建`data`、`log`、`...