Redis数据库在linux中安装及主从配置

  Redis是一个开源、支持网络、基于内存、键值对存储数据库。与其他非关系型数据库主要不同在于,Redis中值的类型不仅限于字符串(Strings),还支持如下抽象数据类型:(列表)Lists、(集合)Sets、(有序集合)Sorted sets 、(哈希)Hashes。Redis 通过 RDB、AOF 两种方式来实现数据的持久化。

  安装Redis

  Redis 源码包保存路径 /usr/local/src

  Redis 软件安装路径 /usr/local/redis

  编译 Redis 前先安装 tcl,若不安装,在 make test 阶段会提示错误。

[root@z-dig ~]# yum -q -y install tcl
[root@z-dig ~]# cd /usr/local/src/ [root@z-dig src]# wget http://download.redis.io/releases/redis-3.0.5.tar.gz
[root@z-dig src]# tar xf redis-3.0.5.tar.gz  [root@z-dig src]# cd redis-3.0.5 [root@z-dig redis-3.0.5]# make [root@z-dig redis-3.0.5]# make test ... \o/ All tests passed without errors!  Cleanup: may take some time... OK make[1]: Leaving directory `/usr/local/src/redis-3.0.5/src' [root@z-dig redis-3.0.5]# make PREFIX=/usr/local/redis-3.0.5 install
[root@z-dig redis-3.0.5]# mkdir /usr/local/redis-3.0.5/conf -p [root@z-dig redis-3.0.5]# ln -s /usr/local/redis-3.0.5/ /usr/local/redis
[root@z-dig redis-3.0.5]# cp redis.conf /usr/local/redis/conf/
[root@z-dig redis-3.0.5]# cd /usr/local/redis [root@z-dig redis]# pwd /usr/local/redis [root@z-dig redis]# tree . . ├── bin │   ├── redis-benchmark │   ├── redis-check-aof │   ├── redis-check-dump │   ├── redis-cli │   └── redis-server └── conf     └── redis.conf  2 directories, 6 files [root@z-dig redis]#

  到此 Redis 已安装在 /usr/local/redis

  修改配置文件

  由于以下配置在某些配置项后添加了注释,所以不能直接使用,使用时需要把后面的注释删除。

[root@z-dig redis]# grep -Ev '#|^$' conf/redis.conf daemonize yes #run as a daemon pidfile /var/run/redis.pid # pid file port 6379 # server port tcp-backlog 511 # < /proc/sys/net/core/somaxconn bind 127.0.0.1 # bind network interface timeout 0 # Close the connection after a client is idle for N seconds tcp-keepalive 0 loglevel warning # verbosity level logfile "/var/log/redis.log" databases 16 # number of databases begain with 0 save 900 1 # after 900 sec (15 min) if at least 1 key changed save 300 10 # after 300 sec (5 min) if at least 10 keys changed save 60 10000 # after 60 sec if at least 10000 keys changed stop-writes-on-bgsave-error yes rdbcompression yes # compress dump.rdb rdbchecksum yes # check dump.rdb dbfilename dump.rdb # dump file name dir ./ # dump file path 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 www.z-dig.com # password for redis when client connect to this server appendonly no # use AOF or RDB appendfilename "appendonly.aof" # AOF file name appendfsync everysec # save frequency 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-entries 512 list-max-ziplist-value 64 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-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes [root@z-dig redis]#

  调整内核参数

[root@z-dig redis]# echo 512 > /proc/sys/net/core/somaxconn

  启动 redis

[root@z-dig redis]# /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf [root@z-dig redis]# lsof -i:6379 COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME redis-ser 20504 root    4u  IPv4 139391      0t0  TCP localhost:6379 (LISTEN) [root@z-dig redis]#

  测试

[root@z-dig redis]# ln -s /usr/local/redis/bin/redis-cli /usr/local/sbin/ [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 6379 -a www.z-dig.com 127.0.0.1:6379> set name mr.zhou OK 127.0.0.1:6379> get name "mr.zhou" 127.0.0.1:6379> 127.0.0.1:6379> help shutdown    SHUTDOWN [NOSAVE] [SAVE]   summary: Synchronously save the dataset to disk and then shut down the server   since: 1.0.0   group: server  127.0.0.1:6379> 127.0.0.1:6379> shutdown save not connected> not connected> get name Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected>  not connected> quit [root@z-dig redis]# lsof -i:6379 [root@z-dig redis]#  [root@z-dig redis]# /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf [root@z-dig redis]# lsof -i:6379 COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME redis-ser 20675 root    4u  IPv4 143036      0t0  TCP localhost:6379 (LISTEN) [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 6379 -a www.z-dig.com get name "mr.zhou" [root@z-dig redis]#

  基础测试完成。根据实际环境进行配置调优。

  多实例主从配置

[root@z-dig redis]# redis-cli -h 127.0.0.1 -p 6379 -a www.z-dig.com shutdown save [root@z-dig redis]# cp conf/redis.conf conf/redis-1.conf [root@z-dig redis]# grep -Ev '#|^$' conf/redis-1.conf  daemonize yes pidfile /var/run/redis-1.pid port 16379 tcp-backlog 511 bind 127.0.0.1 timeout 0 tcp-keepalive 0 loglevel warning logfile "/var/log/redis-1.log" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump-1.rdb dir ./  slaveof 127.0.0.1 6379 masterauth www.z-dig.com 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 www.z-dig.com appendonly no appendfilename "appendonly.aof" appendfsync everysec 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-entries 512 list-max-ziplist-value 64 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-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes [root@z-dig redis]#

  启动两个实例

[root@z-dig redis]# /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf [root@z-dig redis]# /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis-1.conf [root@z-dig redis]# lsof -i:6379 COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME redis-ser 20930 root    4u  IPv4 145992      0t0  TCP localhost:6379 (LISTEN) redis-ser 20930 root    5u  IPv4 146031      0t0  TCP localhost:6379->localhost:39445 (ESTABLISHED) redis-ser 20938 root    5u  IPv4 146029      0t0  TCP localhost:39445->localhost:6379 (ESTABLISHED) [root@z-dig redis]# lsof -i:16379 COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME redis-ser 20938 root    4u  IPv4 146024      0t0  TCP localhost:16379 (LISTEN) [root@z-dig redis]#
[root@z-dig redis]# redis-cli -h 127.0.0.1 -p 6379 -a www.z-dig.com get name "mr.zhou" [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 16379 -a www.z-dig.com get name "mr.zhou" [root@z-dig redis]#

  测试主从

[root@z-dig redis]# redis-cli -h 127.0.0.1 -p 6379 -a www.z-dig.com info replication # Replication role:master connected_slaves:1 slave0:ip=127.0.0.1,port=16379,state=online,offset=337,lag=1 master_repl_offset:337 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:2 repl_backlog_histlen:336 [root@z-dig redis]#   [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 16379 -a www.z-dig.com info replication # Replication role:slave master_host:127.0.0.1 master_port:6379 master_link_status:up master_last_io_seconds_ago:9 master_sync_in_progress:0 slave_repl_offset:351 slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 [root@z-dig redis]#
[root@z-dig redis]# redis-cli -h 127.0.0.1 -p 16379 -a www.z-dig.com get age (nil) [root@z-dig redis]#  [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 16379 -a www.z-dig.com set age 23 (error) READONLY You can't write against a read only slave. [root@z-dig redis]#   [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 6379 -a www.z-dig.com get age (nil) [root@z-dig redis]#  [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 6379 -a www.z-dig.com set age 23 OK [root@z-dig redis]#   [root@z-dig redis]# redis-cli -h 127.0.0.1 -p 16379 -a www.z-dig.com get age "23" [root@z-dig redis]#

  多实例主从已配置完成,并测试成功。配置过程中需要注意各实例的端口、PID文件、dump 文件不能相同。若配置了密码访问,则应注意从实例中进行相应的密码配置。从库是否只读等。

  配置文件中还有很多高级配置项,可以进行调优配置,并组成Redis集群。RDB、AOF可根据实际的情况进行配置。后期会进行介绍。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 测试
, 实例
, redis
, 配置
make
redis数据库主从配置、linux 数据库主从配置、linux redis主从配置、mysql数据库主从配置、数据库主从配置,以便于您获取更多的相关知识。

时间: 2024-12-28 18:39:46

Redis数据库在linux中安装及主从配置的相关文章

linux中dns服务器主从配置教程

bind版本:bind-9.9.5 主:192.169.1.100 从:192.169.1.101 tar zxvf bind-9.9.5.tar.gz cd bind-9.9.5 ./configure --prefix=/usr/local/named --enable-epoll --enable-threads --enable-ipv6 --disable-openssl-version-check --enable-backtrace --enable-symtable make &

在 Linux 中安装 Darkstat:基于网页的流量分析器

Darkstat是一个简易的,基于网页的流量分析程序.它可以在主流的操作系统如Linux.Solaris.MAC.AIX上工作.它以守护进程的形式持续工作在后台,不断地嗅探网络数据,以简单易懂的形式展现在它的网页上.它可以为主机生成流量报告,识别特定的主机上哪些端口是打开的,它兼容IPv6.让我们看下如何在Linux中安装和配置它. 在Linux中安装配置Darkstat 在Fedora/CentOS/RHEL中安装Darkstat: 要在Fedora/RHEL和CentOS中安装,运行下面的命

Linux中安装Memcached服务

下载并安装Memcache服务器端 服务器端主要是安装memcache服务器端. 下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz 另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3.(如果你的系统已经安装了libevent,可以不用安装) 官网:http://www.monkey.org/~provos/libev

如何在Linux中安装JDK?

在Linux中安装JDK,过程如下: 1. 先从网上下载jdk,下载后放在/home目录中,当然其它地方也行. 进入安装目录 #cd /home #cp jdk-1_6_0_03-linux-i586.rpm /usr/local #cd /usr/local 给所有用户添加可执行的权限 #chmod +x jdk-1_6_0_03-linux-i586.rpm.bin #./jdk-1_6_0_03-linux-i586.rpm.bin 此时会生成文件jdk-1_5_0_02-linux-i5

linux中安装Zend Optimizer与eAccelerator教程

eAccelerator与Zend Optimizer是一个加速软件了,我们可以利用它与php环境同步运行使用得php性能更好了,下面来一起看看linux中安装Zend Optimizer与eAccelerator教程 下载Zend Optimizer http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz tar -xzvf ZendOptimizer-3.3.9-linux

Linux有问必答-如何在Linux中安装Go语言

Linux有问必答-如何在Linux中安装Go语言 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装Go语言 下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具. $ sudo

Linux有问必答:如何为在Linux中安装兄弟牌打印机

提问: 我有一台兄弟牌HL-2270DW激光打印机,我想从我的Linux机器上打印文档.我该如何在我的电脑上安装合适的驱动并使用它? 兄弟牌以买得起的紧凑型激光打印机而闻名.你可以用低于200美元的价格得到高质量的WiFi/双工激光打印机,而且价格还在下降.最棒的是,它们还提供良好的Linux支持,因此你可以在Linux中下载并安装它们的打印机驱动.我在一年前买了台HL-2270DW,我对它的性能和可靠性都很满意. 下面是如何在Linux中安装和配置兄弟打印机驱动.本篇教程中,我会演示安装HL-

如何在 Linux 中安装最新的 Python 3.6 版本

在这篇文章中,我将展示如何在 CentOS/RHEL 7.Debian 以及它的衍生版本比如 Ubuntu(最新的 Ubuntu 16.04 LTS 版本已经安装了最新的 Python 版本)或 Linux Mint 上安装和使用 Python 3.x .我们的重点是安装可用于命令行的核心语言工具. 然后,我们也会阐述如何安装 Python IDLE - 一个基于 GUI 的工具,它允许我们运行 Python 代码和创建独立函数. 在 Linux 中安装 Python 3.6 在我写这篇文章的时

求大神技术指导在linux中安装oracle11R2

问题描述 求大神技术指导在linux中安装oracle11R2 1.安装步骤 2.安装界面乱码出现方格 3.安装完成dbac说没有此目录文件 解决方案 linux有很多发行版,suse和centos和ubuntu完全不同.先搞清楚你用的版本. 解决方案二: 是啊,用的什么版本啊,用的小红帽?????