redis正式安装过程

安装依赖,下载解压,编译安装

yum install gcc-c++ tcl

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

tar -zxvf  redis-4.0.9.tar.gz

cd redis-4.0.9

make

cd /usr/local/src/redis-4.0.9/src

cp redis-server redis-cli redis-check-aof redis-check-rdb redis-sentinel redis-trib.rb /usr/local/bin/

make PREFIX=/usr/local/redis install

如果此处不用make install请自己尝试创建。

配置环境变量
echo 'PATH=/usr/local/redis/bin/:$PATH' >>/etc/profile

source /etc/profile

查看redis的工具

ls /usr/local/bin

创建redis的配置文件目录:

mkdir /usr/local/redis/conf

cp /usr/local/src/redis-4.0.9/redis.conf /usr/local/redis/conf/

创建文档:

mkdir -p /var/redis/run

mkdir -p /var/redis/log

mkdir -p /data/redis/data

修改配置文件

vi /usr/local/redis/conf/redis.conf

port 6379      //默认是6379,做主从可以设置其他端口

daemonize yes

pidfile /var/redis/run/redis_6379.pid

logfile /var/redis/log/redis_6379.pid

dir /data/redis/data        //工作目录,dump文件所在的目录,也是数据库目录,该目录默认是根下

requirepass test123       //配置redis的登录密码

appendonly yes             //redis默认持久化方式是rdb,数据写到dump中

启动redis

redis-server /usr/local/redis/conf/redis.conf &

lsof -i :6739

redis关闭
redis-cli shutdown save

如果配置了密码和端口,则重启redis都要使用

redis-cli -p 6379 -a test123

**************************************************************************************************************

redis默认的持久化方式是RDB,数据写入到dump文件中。如果要启用AOF持久化,就在redis.conf文件中配置如下:
appendonly yes         #启用AOF持久化方式
appendfilename "appendonly.aof"       #AOF文件的名称,默认为appendonly.aof
# appendfsync always        #每次收到写命令就立即强制写入磁盘,是最有保证的完全的持久化,但速度也是最慢的,一般不推荐使用。
appendfsync everysec        #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,是受推荐的方式。
# appendfsync no         #完全依赖OS的写入,一般为30秒左右一次,性能最好但是持久化最没有保证,不被推荐。

**************************************************************************************************************

ps -ef|grep redis
root 3795 1 0 15:33 ? 00:00:00 redis-server 127.0.0.1:6379
root 3799 31415 0 15:33 pts/1 00:00:00 grep --color redis

lsof -i:6379
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 3795 root 4u IPv4 58627495 0t0 TCP localhost:6379 (LISTEN)

设置开机启动

echo "/usr/local/bin/redis-server /usr/local/redis/conf/redis.conf" >> /etc/rc.local

关闭redis服务

端口如果变化需要更端口号

redis-cli  -p 6379 -a test123 shutdown

当开始写入数据后会在/data/redis/data 该目录下生成dump.rdb文件和持久化日志,生成的

appendonly.aof文档记录了数据库的修改

************************************************************************************

设置redis服务启动脚本以及开机启动

将redis解压包下utils下redis启动脚本redis_init_script拷贝至/etc/init.d/,并修改脚本名称(也可不修改)为redis

cp /usr/local/src/redis-4.0.9/utils/redis_init_script /etc/init.d/redis

chmod +x /etc/init.d/redis

修改脚本pid及conf路径为实际路径,红色字体部分如果没有,将不能自启动

在启动脚本/etc/init.d/redis里加入redis启动优先级信息

#!/bin/sh
#
# chkconfig: 2345 90 10                                                     //注意:后面的英文空格
# description: Redis is a persistent key-value database          //注意:后面的英文空格

# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/redis/run/redis_6379.pid
CONF="/usr/local/redis/conf/redis.conf"

开机自启动

chkconfig redis on

chkconfig --list | grep redis

redis 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

**********************************************************************************************************

初始化Redis的密码
有以下2个步骤:
1)在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数。
比如 requirepass test123
2)配置文件中参数生效需要重启重启redis 。
重启redis服务后,发现使用redis-cli -p 6379的无密码方式仍能登录redis,只是登录进去后不能做任何操作。
需要用密码登录redis-cli -p 6379 -a test123后,才能正常操作

那么不重启redis的情况下如何配置密码?
1)在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。
# requirepass foobared
比如修改成:
requirepass test123
2)进入redis重定义参数
查看当前的密码:
[root@slaver251 redis-2.4.16]# redis-cli -p 6379
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379>
显示密码是空的,
然后设置密码:
redis 127.0.0.1:6379> config set requirepass test123
OK
再次查询密码:
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
此时报错了!
现在只需要密码认证就可以了。
redis 127.0.0.1:6379> auth test123
OK
再次查询密码:
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "test123"
密码已经得到修改。
当到了可以重启redis的时候,由于配置参数已经修改,所以密码会自动生效。
要是配置参数没添加密码,那么redis重启,密码将相当于没有设置。

*************************************************************************************************

masterauth是当master节点设置了密码保护时,slav服务连接master的密码,这个是在slave节点配置的。
1)如果master节点不设置密码(即不设置requirepass密码),那么slave节点在配置同步的时候,只需配置:
#slaveof master的ip 端口
slaveof 192.168.1.150 6379 
2)如果master节点配置了requirepass密码,那么slave就需要配置masterauth密码来连接master。
比如:
master :

port 6379
     requirepass redis
slave1 :
    port 6479
    slaveof 192.168.1.150 6379   //此处的ip和端口是主的ip和端口
    masterauth redis        //注意,这个是连接master节点,同步数据用的密码
    requirepass redis      //这个是slave节点上登录自己的redis用的密码

****************************************************************************************************

slave端的相关配置
slave-read-only yes     #从2.6版本开始支持只读的slave,默认是yes的
masterauth <master-password> #如果master配置了requirepass设置密码,slave需要配置连接master的密码
slave-serve-stale-data
yes  
 #当slave与master断开或者复制正在进行的时候是否继续提供服务,默认是yes继续服务,可以配置为no返回错误提示“SYNC with
master in progress”(除了INFO和SLAVEOF命令)
repl-ping-slave-period 10 #slave发送心跳的间隔时间,默认是10秒,可以做测试,在从上写入数据,输入monitor命令,在主上就能看到每隔十秒就ping下。

master端的相关配置
repl-diskless-sync no     #是否使用无盘复制 Diskless replication,默认是no
repl-diskless-sync-delay
5  
#无盘复制延时开始秒数,默认是5秒,意思是当PSYNC触发的时候,master延时多少秒开始向master传送数据流,以便等待更多的slave连接可以同时传送数据流,因为一旦PSYNC开始后,如果有新的slave连接master,只能等待下次PSYNC。可以配置为0取消等待,立即开始
repl-backlog-size 1mb   #复制流的内存缓冲区大小,用于增量同步,当master-slave断开的时候,master保存在复制流内存缓冲区的数据大小限制,默认是1mb。如果至少有1个slave连接的话,就会释放
repl-backlog-ttl 3600   #复制流的内存缓冲区过时时间,默认3600秒,就是说无论保存在复制流内存缓冲区的数据大小是否超过限制,当master-slave断开超过上述时间就会释放
min-slaves-to-write 3    #从2.8版本开始,可以配置与master连接的slave的最少数量,默认是0没有限制,如果配置>0,需要结合下面的选项一起使用,只有同时满足这2个选项,master才能接收写操作
min-slaves-max-lag 10 #允许master-slave的心跳最大间隔,默认是10秒,需要结合min-slaves-to-write选项一起使用

复制+持久化的数据完整性考虑
如果master配置了slave,那么强烈建议master启用持久化。因为当master重启的时候,如果没有启用持久化,数据会全部丢失,而且当slave重新连接master的时候,slave原有的数据也会被清空。如果真的要配置不启用持久化,最好不要设置自动启动master,除非数据全部丢失对你来说不重要。

redis介绍和安装和主从介绍(二)的更多相关文章

  1. Redis集群(四):主从配置二

    一.本文目的        主要介绍redis主从模式下各种情况 二.说明 主从的基本概念:Master用于写入,Slaver用于读取,不能写入或修改,一个Master可以对应多个Slaver Mas ...

  2. 企业级Harbor介绍及安装

    企业级Harbor介绍及安装 一.Harbor介绍 VMware公司最近开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务.它以D ...

  3. 01-Django介绍和安装

    01-Django介绍和安装 1.Django介绍 1.1介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M(Model),视图V(View)和控 ...

  4. Nginx的介绍和安装详解

    [介绍+安装]Nginx的介绍和安装详解   == 介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx ...

  5. 第三百五十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)介绍以及安装

    第三百五十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)介绍以及安装 elasticsearch(搜索引擎)介绍 ElasticSearch是一个基于 ...

  6. Python介绍和安装

    python介绍和安装 目录 python介绍和安装 1. Python简介 2. 解释器 2.1 Python解释器的种类 2.2 Python解释器版本 3. Windows下安装Python 3 ...

  7. redis介绍和安装(一)

    Redis介绍:redis是一个key-value存储系统. 和Memcached类似,它支持存储的value类型相对更多,包括 string(字符串). list(链表).set(集合).zset( ...

  8. Redis安装和基础介绍

    一:初识Redis Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型.Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到 ...

  9. NoSQL数据库之Redis数据库:Redis的介绍与安装部署

     NoSQL(NoSQL = Not Only SQL),它指的是非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的w ...

随机推荐

  1. Java类的静态块の二

    在上一篇Java类的静态块の一中介绍到:类的静态块在类加载时候执行,执行早于构造函数,并且只执行一次. 但是在下面的例子中却发现JVM并不是把把所有的static模块都执行完成再执行其他(Java果然 ...

  2. iOS之创建CocoaPods公有库教程

    简介 在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中. 如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod inst ...

  3. iphone之打开pdf、doc、xls文件用UIWebView

    //文件名字及类型 NSString *path=[[NSBundle mainBundle]pathForResource:@"xls1" ofType:@"xls&q ...

  4. java代码(ascii与字母互转)

    package test; /** * Java中将一个字符与对应Ascii码互转 * 1 byte = 8bit 可以表示 0-127 */ public class GetCharAscii { ...

  5. JavaScript 跨域请求

    1.最简单通用的做法就是 反向代理         通过nginx搭建一个反向代理服务器,通过将跨域的请求配置成转发:此方法适用于动静分离时,很多跨域请求的情况下: server { listen 8 ...

  6. 基于51单片机个LCD1602的万年历程序

    小白 第一次跟新博客 基于51单片机和LCD1602的万年历程序 可实现走时和调时功能 有简单的1602菜单制作 欢迎大家交流 LCD1602和51单片机的连接方法 RS = P3^5; //数据/命 ...

  7. sourceTree配置bitbucket

    1. 为github增加账号信息 选择添加远程库 选择添加一个账号 输入用户名: 按照提示输入密码 选择bitbuchet为默认 选中搜索克隆

  8. Luogu P5327 [ZJOI2019]语言

    ZJOI2019Day2的温暖题,然后考场上只会大常数的\(O(n\log^3 n)\),就懒得写拿了60pts走人 首先我们简化题意,容易发现每个点能到达的点形成了一个联通块,我们只需要统计出这个联 ...

  9. kitti raw data development kit的使用

    run_demoVelodyne.m使用:http://blog.csdn.net/qq_33801763/article/details/78959205   https://www.cnblogs ...

  10. KVM 重命名虚机

    KVM 重命名虚机 1. 查看虚机列表 [root@bjape01-kvm1 ~]# virsh  list --all Id    名称                         状态 --- ...