redis笔记

redis 安装配置学习笔记

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

下载最新版本

wget http://download.redis.io/redis-stable.tar.gz

 

首先必须要有 gcc 与 make

apt-get install gcc

apt-get install make

 

1、解压

root@localhost:~# tar -xvf redis-stable.tar.gz

2、测试

root@localhost:~/redis-stable# ./runtest

You need tcl 8.5 or newer in order to run the Redis test

提示需要安装tcl

 

make完成后,在原src目录下,会生成出六个exe(可执行程序),服务端只需要redis-server.exe即可

 

3、运行redis

后台方式启动redis

./redis-server &

启动redis客户端链接

./redis-cli

输入ping 返回pong 即为安装成功

 

扩展知识:

redis-cli用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]]

-h <主机ip>,默认是127.0.0.1

-p <端口>,默认是6379

-a <密码>,如果redis加锁,需要传递密码

--help,显示帮助信息

如:redis-cli -h 192.168.1.103 -p 6379

 

考虑到redis是单线程工作,因此一般是一台电脑上,启动多个redis实例。

 

启动方式二

使用配置文件启动

./redis-server redis.conf &

 

配置示例在 src目录的父级目录里有。也可以进行查找

find / -name redis.conf

 

4、redis主从配置

Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。

1).master可以有多个slave

2).除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构

3).主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求。相反slave在初次同步数据时则会阻塞不能处理client的请求。

4).主从复制可以用来提高系统的可伸缩性,我们可以用多个slave 专门用于client的读请求,比如sort操作可以使用slave来处理。也可以用来做简单的数据冗余

5).可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化。

参考文档:http://blog.csdn.net/done58/article/details/50997817

 

环境描述:
主redis:127.0.0.1 6379
从redis:127.0.0.1 6380

 

主配置文件:redis.conf (不用更新,重点关注下面两个参数)

port 6379

pidfile /var/run/redis_6379.pid

从配置文件 redis2.conf (需要更改下面的参数)

port 6380

pidfile /var/run/redis_6380.pid

slaveof localhost 6379

 

先启动主 再启动从 。

redis 主从默认是读写分离。主为读写,从为读。

 

主从复制过程:

1):当一个从数据库启动时,会向主数据库发送sync命令,

2):主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来

3):当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。

4):从数据库收到后,会载入快照文件并执行收到的缓存的命令。

 

5、默认是读写分离的

 

6、redis 主从切换

 

1)停止主节点

 

2)切换从节点为主节点

./redis-cli -p 6380 slaveof NO ONE

 

3)测试从节点是否可读写

 

4)当主节点恢复工作后,要及时更新从节点,设置为主节点的从节点。

 

7、redis数据保存

 

1、快照(snapshots)

 

缺省情况情况下,Redis把数据快照存放在磁盘上的二进制文件中,文件名为dump.rdb。你可以配置Redis的持久化策略,例如数据集中每N秒钟有超过M次更新,就将数据写入磁盘;或者你可以手工调用命令SAVE或BGSAVE。

工作原理

 

Redis forks.

子进程开始将数据写到临时RDB文件中。

当子进程完成写RDB文件,用新文件替换老文件。

这种方式可以使Redis使用copy-on-write技术。

 

相关参数

save 900 1

save 300 10

save 60 10000

保存的目录

dir ./

 

示例:

 

命令

save 进行保存

scp 复制到另外一台机器的存储目录,而后重新启动那台机器,就可以看到数据复制了。

scp dump.rdb root@192.168.0.149:/usr/local/redis/bin/
root@192.168.0.149's password:
dump.rdb

 

8、redis集群 (3.0版本以后实现的)

(个人理解:把各redis 组成一个圆,每个圆负责一部分hash槽。圆中的各节点不复制数据。 圆中的各节点均提供一个主从备份实现高可用。)

 

3.0之后的功能,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。

 

Redis集群提供了以下两个好处

1、将数据自动切分(split)到多个节点

2、当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。

一个 redis 集群包含 16384 个哈希槽(hash slot),数据库中的每个数据都属于这16384个哈希槽中的一个。集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽。集群中的每一个节点负责处理一部分哈希槽。

集群中的主从复制

集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点,如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作。这样集群就不会因为一个主节点的下线而无法正常工作

注意:

1、如果某一个主节点和他所有的从节点都下线的话,redis集群就会停止工作了。redis集群不保证数据的强一致性,在特定的情况下,redis集群会丢失已经被执行过的写命令。

2、使用异步复制(asynchronous replication)是redis 集群可能会丢失写命令的其中一个原因,有时候由于网络原因,如果网络断开时间太长,redis集群就会启用新的主节点,之前发给主节点的数据就会丢失。

 

 

集群什么时候会挂掉(集群是多个master组成的圆,各master有多个salve)

a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.

b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态

 

redis 集群实战参数地址:http://blog.csdn.net/myrainblues/article/details/25881535/

 

 

9、redis监控

http://blog.csdn.net/u011204847/article/details/51307044

posted @ 2019-08-14 14:47  liuxm-刘小明  阅读(106)  评论(0编辑  收藏  举报