linux redis 主从配置,redis集群(主从配置)

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操 作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的 是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

1.下载软件包

# cd /usr/local/src/

# wget http://redis.googlecode.com/files/redis-2.6.11.tar.gz

1

2

# cd /usr/local/src/

# wget http://redis.googlecode.com/files/redis-2.6.11.tar.gz

2. Redis安装

主从都需要安装

# tar -xzvf redis-2.6.11.tar.gz

# mv redis-2.6.11 /usr/local/

# cd /usr/local/redis-2.6.11/

# make

1

2

3

4

# tar -xzvf redis-2.6.11.tar.gz

# mv redis-2.6.11 /usr/local/

# cd /usr/local/redis-2.6.11/

# make

备注:这边就不make install 了,直接使用make好的文件

3. redis配置

找到配置文件/usr/local/redis-2.6.11/redis.conf

修改如下内容:

daemonize no 改为 yes # 是否后台运行

port 6379 改为 12002 # 端口

dir ./ 改为 /data/redis_12002/ 或者/www/redis_12002/ # 数据目录

1

2

3

4

5

找到配置文件/usr/local/redis-2.6.11/redis.conf

修改如下内容:

daemonizeno改为yes# 是否后台运行

port6379改为12002# 端口

dir./改为/data/redis_12002/或者/www/redis_12002/# 数据目录

其他配置请查看相应文档,文章结尾将会附上所有配置参数

4. redis启动与关闭

启动

/usr/local/redis-2.6.11/src/redis-server /usr/local/redis-2.6.11/redis.conf

停止

1

2

/usr/local/redis-2.6.11/src/redis-server/usr/local/redis-2.6.11/redis.conf

停止

/usr/local/redis-2.6.11/src/redis-cli -n 12002 shutdown

1

/usr/local/redis-2.6.11/src/redis-cli-n12002shutdown

5. redis命令测试

先登录shell客户端

/usr/local/redis-2.6.11/src/redis-cli -p 12002

set 测试

redis 127.0.0.1:12002> set name abc

OK

get 测试

redis 127.0.0.1:12002> get name

"abc"

关于list,hash等等就不在演示了,具体查看相关文档

1

2

3

4

5

6

7

8

9

10

11

先登录shell客户端

/usr/local/redis-2.6.11/src/redis-cli-p12002

set测试

redis127.0.0.1:12002>setnameabc

OK

get测试

redis127.0.0.1:12002>getname

"abc"

关于list,hash等等就不在演示了,具体查看相关文档

6. Redis主从配置

6.1 只需要修改slave的配置

找到配置文件/usr/local/redis-2.6.11/redis.conf

修改如下内容:

slaveof 192.168.77.211 12002 # slaveof master的ip master的端口

1

2

3

找到配置文件/usr/local/redis-2.6.11/redis.conf

修改如下内容:

slaveof192.168.77.21112002# slaveof master的ip master的端口

6.2 主从测试

在master set

redis 192.168.77.211:12002> set testms gogogo

OK

在slave get

redis 192.168.77.197:12002> get testms

"gogogo"

1

2

3

4

5

6

7

在masterset

redis192.168.77.211:12002>settestmsgogogo

OK

在slaveget

redis192.168.77.197:12002>gettestms

"gogogo"

7. 附加:redis配置文件

daemonize yes

pidfile /var/run/redis.pid

port 12002

timeout 0

tcp-keepalive 0

loglevel notice

logfile stdout

databases 16

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir /www/redis_12002/

slave-serve-stale-data yes

slave-read-only yes

repl-disable-tcp-nodelay no

slave-priority 100

appendonly no

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

lua-time-limit 5000

slowlog-log-slower-than 10000

slowlog-max-len 128

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

list-max-ziplist-entries 512

list-max-ziplist-value 64

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

daemonizeyes

pidfile/var/run/redis.pid

port12002

timeout0

tcp-keepalive0

loglevelnotice

logfilestdout

databases16

save9001

save30010

save6010000

stop-writes-on-bgsave-erroryes

rdbcompressionyes

rdbchecksumyes

dbfilenamedump.rdb

dir/www/redis_12002/

slave-serve-stale-datayes

slave-read-onlyyes

repl-disable-tcp-nodelayno

slave-priority100

appendonlyno

appendfsynceverysec

no-appendfsync-on-rewriteno

auto-aof-rewrite-percentage100

auto-aof-rewrite-min-size64mb

lua-time-limit5000

slowlog-log-slower-than10000

slowlog-max-len128

hash-max-ziplist-entries512

hash-max-ziplist-value64

list-max-ziplist-entries512

list-max-ziplist-value64

set-max-intset-entries512

zset-max-ziplist-entries128

zset-max-ziplist-value64

activerehashingyes

client-output-buffer-limitnormal000

client-output-buffer-limitslave256mb64mb60

client-output-buffer-limitpubsub32mb8mb60

hz10

如上为单机版本redis的配置文件,如果需要改为主从,只需要增加

slaveof 192.168.77.211(redis master IP) 12002(redis master 端口)

1

slaveof192.168.77.211(redismasterIP)12002(redismaster端口)

7. 结束语

当然,这还只是集群的第一步,大家可以使用keepalive来实现主的故障转移功能。工作中我们最常用的要数redis主从,所以keepalive + redis实现高可用性集群这边不在讲述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

telnet入侵linux,教你入侵RedHatLinux

此文的目的不在于教人入侵,而是为了提高自身的技术和加强网络管理员的安全防范意识。仅此而已!粗心大意的网络管理员应该明白:由于你们一个小小的操作失误可能会导致整个网络全面沦陷!本文主要是围绕LPD:网络打印服务的攻击而进行的。首先确定目标&#…

linux telnet.class,Linux telnet简单实用方法

语法telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]参数-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。-e 跳过字符来进入 telnet 客户提示。-f 客户端登录的文件名-l 指定远程系统上登录用的用户名称。要求远程系统支…

linux查找文件名赋值给变量,Linux平台从文件中查找字符赋值于变量

以telnet方式登录Linux主机,在默认目录下用命令创建一个包含DUT wanIP的文本文件。[root] echo wanIP88.0.100.253 > ./wanIP.txt在默认目录下创建包含以下内容的shell脚本。在实际操作中,可能需要利用命令执行多条相同的命令。在命令后面加上"&…

linux两个数字正则,正则表达式-Linux readelf显示具有不同数字系...

我正在研究ELF文件中的一些对象,并为此目的使用了readelf.这个readelf样本显示了第3列上对象的大小(字节),在大型物体上,readelf以十六进制而不是dec打印,这打断了我的尺寸排序尝试. (排序忽略十六进制值)Num: Value Size Type Bind Vis Ndx Name1369: 808ec6e8 2048 OBJECT LO…

c++语言成绩统计系统数组,急求!!!关于学生成绩管理系统的C++ 结构体数组...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼scanf("%d",&p->data.cgrade);getchar();printf("请你输入数学成绩:");scanf("%d",&p->data.mgrade);getchar();printf("请你输入英语成绩:");scanf("%d",&p…

c语言中实现自动平移,c语言实现图像的旋转与平移

yyy(4) ty≥height,图象完全移出了屏幕,不用做任何处理。这种做法利用了位图存储的连续性,即同一行的象素在内存中是相邻的。利用 memcpy函数, 从(x ,y )-x )处,拷 0 0 点开始,一次可以拷贝一整…

c语言编写电子秒表程序,电子秒表C程序.doc

电子秒表C程序电子秒表程序#include#include#define uchar unsigned char#define uint unsigned intuchar code segtab[]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0x8c,0xff};uchar dbuf[3]{0,0,0};uint count;uchar sec;uchar…

c语言星空程序,C语言实现动态星空

1、/ 编译环境:Visual C 6.0,EasyX 2014冬至版/ e a s y x . c n/#include #include #include #define MAXSTAR 200/ 星星总数struct STARdoublex;inty;doublestep;intcolor;STAR starMAXSTAR;/ 初始化星星void InitStar(int i)stari.x 0;stari.y rand…

c语言stanf,stanf

1、很多问题的答案只能是“是”或“否”,但很多人总是通过说“我不告诉你”或者“我不知道”来逃避。2、假的事情总是显得过于巧合,过于圆满,以至于最后被揭穿。生活中的事情要都那么完美就不会有那么多人不快乐了。3、“肯定”表示有90&…

c语言循环数组赋值,for循环里边给数组赋值的难题

[Quote]/* E5.4 */#include int main(void){double data[12][5];int i0; //总共有多少个数字double row2.0; //初始数字for(i0;i<11;i){data[i][0]row;printf(“\n%d\t%.2f”,i,data[i][0]);rowrow0.1;}return 0;}[/QUOTE]我是C的初学者&#xff0c;这个程序本身没有问题&…

用c语言 c 做8位数奇校验,计算机硬件技术基础网上作业及答案

第一章概述1&#xff0e;下列叙述错误的是()A&#xff0e;目前大多数计算机结构仍属冯诺依曼结构B&#xff0e;计算机的工作原理基于“程序存储和控制”C&#xff0e;计算机的速度取决于CPU的主频&#xff0c;主频高的CPU速度快D&#xff0e;计算机系统包括硬件、软件两部分2&a…

c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼前面已经有一道类似的题目为这道题做铺垫&#xff0c;我已经做出来啦。前面的题目是这样的&#xff1a;用选择法对10个数进行排序。我的做法&#xff0c;就是一个个对比扫描&#xff0c;从左到右递增。代码如下&#xff1a;#includ…

linux mpeg-4,嵌入式MPEG-4解码系统的设计与实现,嵌入式MPEG-4解码系统,嵌入式Linux,视频码流,P...

介绍了一种嵌入式高图像质量的MPEC-4视频流解码系统。该系统以嵌入式Linux作为操作系统&#xff0c;采用硬解码方式&#xff0c;把IDE接口设备或网络端口输入的MPEC-4视频码流(ES、PS和TS)转换成PAL&#xff0f;NTSC制式的电视信号输出。重点讨论了系统控制和MPEG-4解码部分的设…

android 手机壁纸源码,Android工程实现换壁纸功能【附源码】

最近工作要实现换壁纸小功能,将代码做成demo发出来没有采用zip格式换肤,因为只是更换一张图片背景1.将三张图放入drawable-hdpi,我放的是480*800的2.用sharedPreference存取皮肤的id,以便于下次启动的时候根据id来选择用哪个皮肤,在onresume()里刷新皮肤3.存到sharedPreference…

android webview 加载本地,webview加载本地资源的各种尝试

1.webview 打开sd卡上的静态html文件 &#xff0c;js文件既然放在assets文件夹下能找到&#xff0c;那能通过放在sd卡&#xff0c;能加载吗&#xff1f;答&#xff1a;事实证明&#xff0c;是没有用的。2.既然能拿到html的数据&#xff0c;那我们是不是重写html的script的tag的…

android 遍历sdcard,Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法...

本文实例讲述了Android编程读取Assets所有文件(遍历每一个文件夹)并存入sdcard的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;private void CopyAssets(String assetDir, String dir) {String[] files;try {// 获得Assets一共有几多文件files this.getResourc…

apple手表android手机,Apple Watch 4发布了,安卓手机用户如何选择呢?

Apple Watch 4发布了&#xff0c;安卓手机用户如何选择呢&#xff1f;2018年09月13日 17:40作者&#xff1a;黄页编辑&#xff1a;黄页分享一年一度的“科技界春晚”苹果新品发布在今天凌晨举行。苹果带来了新一代的智能手表——Apple Watch Series 4系列。作为“课代表”,科技…

android投屏到电视机,华为手机如何投屏到电视机上?按步骤,1分钟搞定手机投屏电视机...

现在&#xff0c;越来越多的人开始用上了华为手机&#xff0c;几乎人手一台。在平时学习、工作中&#xff0c;我也经常使用华为手机来处理、完成很多事项、任务&#xff0c;例如把手机投屏到电视机上。除了满足学习、工作需求&#xff0c;我也经常把手机投屏电视来看视频、玩游…

html语言可以干什么,JavaScript语言能做什么?

JavaScript是除了HTML和CSS之外&#xff0c;万维网的核心技术之一。JavaScript支持交互式web页面&#xff0c;是web应用程序的重要组成部分。绝大多数网站都使用它&#xff0c;主要的网络浏览器都有专门的JavaScript引擎来执行它。JavaScript(简称“JS”) 是一种具有函数优先的…

html获取当前二级域名,列举某域名下所有二级域名的方法总结

鬼仔注&#xff1a;本文为总结文&#xff0c;转载请注明来源( http://huaidan.org )这里介绍三种列举某域名下所有二级域名的方法&#xff0c;有知道其他方法的请到 http://huaidan.org/archives/1088.html 留言进行补充~谢谢。1、命令行下列举此方法好像是hoky很久以前写的&am…