redis 安装及主从复制

安装redis
下载redis源码,并进行相关操作,如下:
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
解压安装redis
[[email protected] ~]# tar zxf redis-3.2.3.tar.gz
解压完毕后,现在开始安装,如下:
[[email protected] ~]# cd redis-3.2.3/
[[email protected] redis-3.2.3]# make&& make install
通过上图,我们可以很容易的看出,redis安装到
/usr/local,/usr/local/bin,/usr/local/share,/usr/local/include,/usr/local/lib,/usr/l
ocal/share/man目录下。
然后再切换到utils目录下,执行redis初始化脚本install_server.sh,如下:
[[email protected] redis-3.2.3]# cd utils/
[[email protected]]# ./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 redisconfig 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
CliExecutable : /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!
通过上面的安装过程,我们可以看出redis初始化后redis配置文件为
/etc/redis/6379.conf,日志文件为/var/log/redis_6379.log,数据文件dump.rdb存
放到/var/lib/redis/6379目录下,启动脚本为/etc/init.d/redis_6379。
现在我们要使用systemd,所以在 /etc/systems/system 下创建一个单位文件名字
为 redis_6379.service。
[[email protected]]# vi /etc/systemd/system/redis_6379.service
内容如下:
[Unit]
Description=Redis on port 6379
[Service]
Type=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop
[Install]
WantedBy=multi-user.target
注:这里Type=forking是后台运行的形式
启动redis
[[email protected]]# systemctl daemon-reload
[[email protected]]# systemctl enable redis_6379.service
[[email protected]]# systemctl start redis_6379.service
[[email protected]]# systemctl status redis_6379.service
● redis_6379.service - Redis on port 6379
Loaded: loaded (/etc/systemd/system/redis_6379.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2016-11-16 21:07:26 CST; 4min 25s ago
Process: 7732 ExecStart=/etc/init.d/redis_6379 start (code=exited, status=0/SUCCESS)
Main PID: 7734 (redis-server)
CGroup: /system.slice/redis_6379.service
└─7734 /usr/local/bin/redis-server 127.0.0.1:6379
Nov 16 21:07:26 redissystemd[1]: Starting Redis on port 6379...
Nov 16 21:07:26 redis redis_6379[7732]: Starting Redis server...
Nov 16 21:07:26 redissystemd[1]: Started Redis on port 6379.
[[email protected]]# netstat -anpt | grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0: LISTEN 7734/redis-server 1
从显示结果可以看到redis默认监听的是127.0.0.1的6379端口
防火墙规则设置
[[email protected]]# firewall-cmd --permanent --add-port=6379/tcp
success
[[email protected]]# firewall-cmd --reload
success
现在来查看redis版本使用redis-cli –version命令,如下
[[email protected]]# redis-cli --version
redis-cli 3.2.3
通过显示结果,我们可以看到redis版本是3.2.3。
到此源码方式安装redis就介绍完毕。
redis安装完毕之后,我们再来配置redis
设置redis监听的地址,添加监听redis主机的ip
考虑到安全性,我们需要启用redis的密码验证功能requirepass参数
最终redis配置文件如下:
[[email protected] ~]# grep -Ev ‘^#|^$‘ /etc/redis/6379.conf (红色部分为修改内容)
bind 127.0.0.1 192.168.31.106
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis_6379.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilenamedump.rdb
dir /var/lib/redis/6379
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass [email protected]
appendonly no
appendfilename "appendonly.aof"
appendfsynceverysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limitpubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
重新启动redis服务
[[email protected] ~]# systemctl restart redis_6379.service
[[email protected] ~]# netstat -anpt | grep redis
tcp 0 0 192.168.31.106:6379 0.0.0.0:
LISTEN 8418/redis-server 1
Redis 命令
Redis 命令用于在 redis 服务上执行操作。
要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的
redis 的安装包中。
语法
Redis 客户端的基本语法为:
$ redis-cli
实例
以下实例讲解了如何启动 redis 客户端:
启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务。
$redis-cli
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
在以上实例中我们连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服
务是否启动。
在远程服务上执行命令
如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。
语法
$ redis-cli -h host -p port -a password
实例
以下实例演示了如何连接到主机为 127.0.0.1,端口为 6379 ,密码为 mypass 的 redis
服务上。
$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
主从复制
环境描述:
主 redis:192.168.10.1 6379
从 redis:192.168.10.2 6380
一、主从配置
1、将主从 redis 配置文件 redis.conf 中的 daemonize no 改为 yes
2、修改从 redis 配置文件 redis.conf 中的 port 6379 改为 6380,添加 slaveof
192.168.10.1 6379
三种办法:a、配置文件中加 slaveof [masterHost] [masterPort]
b、redis-server 启动时加--slaveof [masterHost] [masterPort]
c、直接使用命令 slaveof [masterHost] [masterPort]
3、启动主从服务
主 redis:
[[email protected] redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis2.8.3/redis.conf
从 redis:
[[email protected] redis-2.8.3]# src/redis-server /soft/redis-2.8.3-slave/redis2.8.3/redis.conf
4、测试数据同步
主 redis:
[[email protected] redis-2.8.3]# src/redis-cli -p 6379
127.0.0.1:6379> set name abc
OK
127.0.0.1:6379> get name
"abc"
127.0.0.1:6379>
从 redis:
[[email protected] redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> get name
"abc"
127.0.0.1:6380>
5、默认是读写分离的
在从 redis:
[[email protected] redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> set name 123
(error) READONLY You can‘t write against a read only slave.
二、主从切换
1、停止主 redis
[[email protected] redis-2.8.3]# src/redis-cli -n 6379 shutdown
[[email protected] redis-2.8.3]# src/redis-cli -p 6379
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
2、将从 redis 设成主 redis
[[email protected] redis-2.8.3]# src/redis-cli -p 6380 slaveof NO ONE
OK
3、测试从 redis 是否切换从主 redis
[[email protected] redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> set name 123
OK
127.0.0.1:6380> get name
"123"
127.0.0.1:6380>
4、原来的主 redis 恢复正常了,要重新切换回去
1)将现在的主 redis 的数据进行保存
[[email protected] redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> get name
"abc"
127.0.0.1:6380> set name 123
OK
127.0.0.1:6380> get name
"123"
127.0.0.1:6380> save
OK
127.0.0.1:6380> get name
"123"
127.0.0.1:6380>
2)将现在的主 redis 根目录下 dump.rdb 文件拷贝覆盖到原来主 redis 的根目录
3)启动原来的主 redis
[[email protected] redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis2.8.3/redis.conf
4)在现在的主 redis 中切换
[[email protected] redis-2.8.3]# src/redis-cli -p 6380 slaveof 192.168.10.1 6379
OK



redis 安装及主从复制

原文地址:https://blog.51cto.com/14243230/2474448

时间: 2024-10-08 11:06:52

redis 安装及主从复制的相关文章

Redis安装及主从复制实战

Redis 是一款开源的,使用C语言编写的.支持网络交互的.可基于内存也可持久化的高性能Key-Value存储系统(cache and store).它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和 有序集合(sorted        sets)等类型. Redis作者谈Redis应用场景:http://blog.nosqlfan.com/html/2235.html 1.redis安装部署:wg

redis 安装配置学习笔记

redis 安装配置学习笔记 //wget http://download.redis.io/releases/redis-2.8.17.tar.gz 下载最新版本 wget http://download.redis.io/redis-stable.tar.gz 首先必须要有 gcc 与 make apt-get install gcc apt-get install make 1.解压 [email protected]:~# tar -xvf redis-stable.tar.gz 2.测

redis 安装配置及持久化详解

一.redis简介 二.redis安装 三.redis配置文件详解 四.redis持久化详解 1.redis 简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redi

redis安装及redis数据类型

Redis介绍: 一.介绍 在过去的几年中,NoSQL数据库一度成为高并发.海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机.然而在众多产品中能够脱颖而出的却屈指可数,如Redis.MongoDB.BerkeleyDB和CouchDB等.由于每种产品所拥有的特征不同,因此它们的应用场景也存在着一定的差异,下面仅给出简单的说明: 1). BerkeleyDB是一种极为流行的开源嵌入式数据库,在更多情况下可用于存储引擎,比如BerkeleyDB在被Oracle收购之前曾作为MyS

Redis-cluster集群【第一篇】:redis安装及redis数据类型

Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在去看redis的源码能看懂50-60%. redis目前最大的集群应该是新浪的应该. redis目前是vmvaer来支持的,很多的开源软件都需要某些组织来支持的.如果一个开源软件没有金钱来支持的话很难走的持久 二.Redis和Memcache对比 持久化:以电商举例,session用memcache

Linux下Redis安装与PHP扩展(PHP7适用)

一,软件准备 #redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz #phpredis 非php7使用 下载后文件名为:phpredis-develop wget https://codeload.github.com/phpredis/phpredis/zip/develop #phpredis PHP7专属 下载后文件名为:phpredis-php7 wget https://codeload.github.com/

Redis安装部署维护

Redis是个高性能的key-value数据库,它的key具有丰富的数据结构:string,hash,list set和sorted set.作为NOSQL,比起memcache之类,不仅仅key数据结构丰富,而且具有持久化的功能,并且能够支持主从复制,很方便构建集群. redis高性能很大程度上源于它是个内存型数据库,它的高性能表现在:set操作11w/s,get操作8.1w/s,与其他类型数据库性能差异,可以 而参考:http://timyang.net/data/mcdb-tt-redis

Redis安装(单机及各类集群,阿里云)

Redis安装(单机及各类集群,阿里云) 前言 上周,我朋友突然悄悄咪咪地指着手机上的一篇博客说,这是你的博客吧.我看了一眼,是之前发布的<Rabbit安装(单机及集群,阿里云>.我朋友很哈皮地告诉我,我的博客被某个Java平台进行了微信推送.看到许多人阅读,并认同了我的博客,心理还是很开心的. 好了,话题收回来.这次就Redis在实际服务器中的各种安装,进行详细描述. 另外由于内容较多,并不一定能涵盖各个方面,万望见谅.如果存在什么问题,或者有什么需要添加的,请私信或@我. 最后,由于打马赛

redis安装部署

1.下载安装包 http://download.redis.io/releases/redis-3.2.6.tar.gz http://download.redis.io/releases/ 2.更新现有linux环境 sudo yum –y update; sudo yum -y install telnet curl nmap vim gcc gcc-c++ tcl ruby; 3.安装 1 tar -xvf redis-3.2.6.tar.gz 2 cd redis-3.2.6 3 mak