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. Objective-C Data Encapsulation

    All Objective-C programs are composed of the following two fundamental elements: Program statements ...

  2. spark性能测试理论-Benchmark(转)

    一.Benchmark简介Benchmark是一个评价方式,在整个计算机领域有着长期的应用.正如维基百科上的解释“As computer architecture advanced, it becam ...

  3. (转)SpringMVC学习(二)——SpringMVC架构及组件

    http://blog.csdn.net/yerenyuan_pku/article/details/72231385 相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上 ...

  4. java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal问题解决

    使用Maven构建项目并加载spring配置文件时,报如下异常 Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ElementTrav ...

  5. 简单shell执行脚本

    #!/bin/bash source /etc/profile APPLICATIONS_HOME="/opt/cpic_analy" APPLICATION_NAME=" ...

  6. 树状数组 简单题 cf 961E

    题目链接 : https://codeforces.com/problemset/problem/961/E One day Polycarp decided to rewatch his absol ...

  7. VUE2中axios的使用方法

    一,安装 npm install axios 二,在http.js中引入 import axios from 'axios'; 三,定义http request 拦截器,添加数据请求公用信息 axio ...

  8. Luogu P1080国王游戏(贪心)

    国王游戏 题目链接:国王游戏 ps:题目数据说明了要写高精度. 这个题的答案是\(a.l * a.r < b.l * b.r\)按照这个进行排序 题解中大部分只是如何证明排序是: \(a.l * ...

  9. Django REST framework 的功能

    1. 认证Authentication 方法一:在配置文件中配置全局默认的认证方案 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 're ...

  10. MySQL 查询优化之 Index Merge

    MySQL 查询优化之 Index Merge Index Merge Intersection 访问算法 Index Merge Union 访问算法 Index Merge Sort-Union ...