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. git处理时的问题

    1. 在node.js开发的时候常常会遇到从别人的远程仓库中clone时出现文件名过长的错误, 或则是在本地npm下载之后的文件进行上传到自己的远程仓库的时候会出现 File too long的情况, ...

  2. url各部分组成分解

    url各部分组成分解介绍:关于url可能大家都不陌生,第一印象就是网址.但是深究起来,不少朋友并明白里面的一些细节,下面就来进行一下分解.scheme://host:port/path?query#f ...

  3. 洛谷 P1311 选择客栈

    题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均 ...

  4. 融云参加RTC实时互联网大会 现场集成IM SDK

    9月21至22日,由全球实时云服务商声网Agora.io主办的RTC2017实时互联网大会在北京万豪酒店成功举办.作为亚洲最权威的RTC实时通信行业技术盛会,会议吸引了来自全球上千名开发者参加,Goo ...

  5. URAL 2048 Histroy(打表+模拟)

    因为年历是400年一个循环节的,所以递推出一年的情况,然后递推处理出一个循环节的情况.对于询问,求一个类似前缀和的东西就好了. 跑出来和比样例小一,把A和B加一以后交后AC... 写得时候注意变量的定 ...

  6. 机器学习之-奇异值分解(SVD)原理详解及推导

    转载 http://blog.csdn.net/zhongkejingwang/article/details/43053513 在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充 ...

  7. layui模块规范

    刚入公司不久,就开始做项目了,最后还是选择用layui来做前端的页面,一来是可以自适应,二来是用框架比较方便,简洁. 先看下Layui的介绍: layui 是一款采用自身模块规范编写的情怀级前端UI框 ...

  8. layui 数据table隐藏表头

    $('.layui-table .layui-table-cell > span').css({'font-weight': 'bold'});//表头字体样式 /*$('th').css({' ...

  9. shell脚本,批量创建10个系统帐号并设置密码为随机8位字符串。

    [root@localhost wyb]# cat user10.sh #!/bin/bash #批量创建10个系统帐号wangyb01-wangyb10并设置密码(密码为随机8位字符串). > ...

  10. HTML 显示和隐藏浏览器滚动条

    滚动条和overflow有关 显示: overflow-x:auto; overflow-y:auto; overflow-x:scroll; overflow-y:scroll; 隐藏: overf ...