redis集群和持久化

----------------------------redis----------------------------
一、哪儿用了redis? 为什么用?
    哪儿用了:首页轮播广告
    为什么用:因为mysql走的硬盘顶不住高并发;redis是走内存;
二、什么是redis?
    redis是c语言开发的高性能的k-v形式的数据库,数据存储在内存中
三、redis的安装和启动
    1、安装
        1)安装c语言环境
            yum install gcc-c++
        2)上传并解压
            cd /usr/upload
            tar -zxvf redis-3.0.0.tar.gz
        3)编译并安装
            cd /usr/upload/redis-3.0.0
            make
            make install PREFIX=/usr/local/redis
        4)拷贝并修改配置文件
            cp /usr/upload/redis-3.0.0/redis.conf /usr/local/redis/bin
            vim /usr/local/redis/bin/redis.conf:
                daemonize yes
    2、启动和关闭
        启动:
            /usr/local/redis/bin
            ./redis-server redis.conf
        关闭:
            /usr/local/redis/bin
            ./redis-cli -h 127.0.0.1 -p 6379 shutdown
四、持久化
    1、RDB:默认[数据]
        策略:
            save 900 1
            save 300 10
            save 60 10000

        缺点:不能保证数据完整性
        优点:不影响性能

        实验:
            1、删除dump.rdb
            2、set str 123
            3、./redis-cli shutdown----->观察dump.rdb(生成快照文件并持久化数据)
    2、AOF:[命令]
        策略:
           # appendfsync always
           appendfsync everysec
           # appendfsync no

        缺点:影响性能
        优点:保证数据完整性

        实验:
            1、设置appendonly 为 yes
            2、set str1 123
            3、等待一秒观察appendonly.aof(持久化数据)
五、主从复制
    1、过程
        1)从往主发送sync命令
        2)主往从发送rdb
        3)主往从发送命令
    2、配置步骤
        主:无须配置
        从:slaveof masterip masterport

        实验:
            1)往主写数据,观察从是否同步
            2)关闭主,往从写数据(主死了从只能读)
六、redis-cluster
    1、哨兵的缺点?
        1)主总会满,rdb越来越大
        2)哨兵节点又不存储数据
    2、redis集群是多少台?
        投票容错超过半数:3台   高可用:3台
    3、为什么client连哪一台都行?为什么集群中有一个节点挂了,则整个群都挂了?
        redis集群中有16384个槽分给了3个节点,存取数据时:crc16(key)%16384=0-16383
    4、搭建步骤
        1)安装ruby环境
            yum install ruby
            yum install rubygems
            cd /usr/upload
            gem install redis-3.0.0.gem
            cd redis-3.0.0/src
            ll *.rb
        2)删除dump.rdb和appendonly.aof文件
            cd /usr/local/redis/bin
            rm -f appendonly.aof
            rm -f dump.rdb
        3)拷贝6个节点
            cd /usr/local
            mkdir redis-cluster
            cp -r redis redis-cluster/redis-7001
            cp -r redis redis-cluster/redis-7002
            cp -r redis redis-cluster/redis-7003
            cp -r redis redis-cluster/redis-7004
            cp -r redis redis-cluster/redis-7005
            cp -r redis redis-cluster/redis-7006
        4)修改配置文件
            vim /usr/local/redis-cluster/redis-7001/bin/redis.conf:
                port 7001
                cluster-enable yes
            vim /usr/local/redis-cluster/redis-7002/bin/redis.conf:
                port 7002
                cluster-enable yes
            vim /usr/local/redis-cluster/redis-7003/bin/redis.conf:
                port 7003
                cluster-enable yes
            vim /usr/local/redis-cluster/redis-7004/bin/redis.conf:
                port 7004
                cluster-enable yes
            vim /usr/local/redis-cluster/redis-7005/bin/redis.conf:
                port 7005
                cluster-enable yes
            vim /usr/local/redis-cluster/redis-7006/bin/redis.conf:
                port 7006
                cluster-enable yes
        5)创建启动脚本[v-y-p]
            cd /usr/local/redis-cluster
            vim start-all.sh:
                cd /usr/local/redis-cluster/redis-7001/bin
                ./redis-server redis.conf
                cd /usr/local/redis-cluster/redis-7002/bin
                ./redis-server redis.conf
                cd /usr/local/redis-cluster/redis-7003/bin
                ./redis-server redis.conf
                cd /usr/local/redis-cluster/redis-7004/bin
                ./redis-server redis.conf
                cd /usr/local/redis-cluster/redis-7005/bin
                ./redis-server redis.conf
                cd /usr/local/redis-cluster/redis-7006/bin
                ./redis-server redis.conf
            chmod 777 start-all.sh
            ./start-all.sh
            ps -ef | grep redis
        6)使用ruby脚本搭建集群
            cd /usr/upload/redis-3.0.0/src
            ./redis-trib.rb create --replicas 1 192.168.204.31:7001 192.168.204.31:7002 192.168.204.31:7003 192.168.204.31:7004 192.168.204.31:7005  192.168.204.31:7006
        7)测试
           cd /usr/local/redis-cluster/redis-7001/bin
           ./redis-cli -c -p 7001
           a、观察是否按分配的槽存储数据
                127.0.0.1:7001> set str 123
           b、观察主从关系
                127.0.0.1:7001> cluster nodes
           c、把7001停掉, 再观察主从关系
               ./redis-cli -p 7001 shutdown
               ./redis-server redis.conf
               127.0.0.1:7001> cluster nodes

七、基本命令
    keys *:查看所有key值
    exists:判断key值是否存在
    expire和ttl:设置和查看key的失效时间
    incr和decr:自增和自减
八、redis五种数据类型
                        赋值                          取值                       删除                  特点
    string            set k v                       get k                      del k                 string
    hash              hset k kv                     hget k k                   hdel k k              map
    list              lpush/rpush k v...            lrange k 0 -1              lrem k -2 v           double linkedList
    set               sadd k v...                   smembers k                 srem k v              set
    zset              zadd k 2 v...              zrange k 0 -1 withscores      zrem k v              sort set
九、redis的多数据库实例
    1、redis实例中提供了下标是0-15的16个数据库,下标不能修改,但可通过select切换
    2、清空数据库的命令:
        flushdb:清空当前数据库的数据
        fluashall:清空所有数据库的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis集群是一种分布式的Redis数据库解决方案,它通过将数据分片存储在多个节点上来提供高可用性和扩展性。Redis集群使用哈希槽(hash slot)来将数据分配到不同的节点上,每个节点负责管理一部分哈希槽。当需要访问某个键值对时,客户端会根据键的哈希值确定该键所属的哈希槽,并向负责该哈希槽的节点发送请求。 Redis集群的主要特点包括: 1. 高可用性:当某个节点发生故障时,集群会自动进行故障转移,将故障节点的哈希槽重新分配给其他正常节点。 2. 扩展性:可以通过增加节点来扩展集群的容量和吞吐量。 3. 数据复制:每个节点都会将自己的数据复制到其他节点上,以实现数据的冗余备份。 而Kafka是一个分布式流处理平台,它主要用于处理实时数据流。Kafka采用发布-订阅模式,将数据以消息的形式进行传输和存储。Kafka集群由多个Broker组成,每个Broker负责存储和处理一部分数据。生产者将消息发布到指定的Topic中,消费者则可以订阅这些Topic并消费其中的消息。 Kafka集群的主要特点包括: 1. 高吞吐量:Kafka能够处理大规模的数据流,并提供了高吞吐量的消息传输能力。 2. 可靠性:Kafka通过将消息持久化到磁盘上来保证数据的可靠性,同时支持数据的复制和故障转移。 3. 扩展性:可以通过增加Broker节点来扩展Kafka集群的容量和吞吐量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值