zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    描述软件质量属性需求和质量属性场景(以淘宝网为例)
    软件架构初识
    机器学习实践02
    机器学习实践01
    机器学习十讲02
    用户故事与敏捷方法阅读笔记05
    机器学习十讲01
    用户故事与敏捷方法阅读笔记04
    tensorflow学习05(Mnist数据集)
    spring boot发送HTTP请求
  • 原文地址:https://www.cnblogs.com/liuxm2017/p/11351843.html
Copyright © 2011-2022 走看看