Redis

文章介绍了Redis作为高性能内存数据库的用途,如处理高并发场景,对比了Redis与MySQL的区别。详细阐述了Redis的安装、基本命令,包括keys、exists、incr/decr等。讨论了Redis的持久化机制(RDB和AOF),多数据库实例以及主从复制功能。此外,还详细讲解了Redis集群的搭建过程,强调了集群的高可用性和节点间的通信。
摘要由CSDN通过智能技术生成

一、哪儿用了redis?为什么用?

  • 哪儿用了:首页大广告等数据量不大,但是并发量高的
  • 为什么用:因为mysql走的是走硬盘,redis是走内存;首页数据量小,访问量大;

二、redis介绍

redis是c语言编写的高性能(读110000次/s)的k-v形式的数据库,数据存储在内存中

三、redis的安装和启动

  • 1、安装
    • 1、安装c语言环境
      yum install gcc-c++
    • 2、上传并解压
      cd /usr/upload
      tar -zxvf redis-3.0.0.tar.gz
    • 3、编译并安装
      cd 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/redis.conf
      vim /usr/local/redis/bin/redis.conf:
      daemonize yes
  • 2、启动和关闭
    cd /usr/local/redis/bin
    启动:
    ./redis-server redis.conf
    测试:
    ./redis-cli [-h 192.168.204.132 -p 6379]
    关闭:
    ./redis-cli [-h 192.168.204.132 -p 6379] shutdown

四、基本命令

keys *:查看所有key值
exists:判断key值是否存在
incr和decr:自增和自减
expire和ttl:设置和查看key的失效时间

五、持久化

  • 1、RDB:默认,数据
    策略:
    save 900 1
    save 300 10
    save 60 10000

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

    实现:
    1、set str sb
    2、./redis-cli shutdown------>数据持久化

  • 2、AOF:命令
    策略:
    # appendfsync always
    appendfsync everysec
    # appendfsync no

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

    实验:
    1、设置appendonly为yes
    2、set str1 sb,等待一秒---->数据持久化

六、redis的多数据库实例

  • 1、redis实例中提供了下标是0-15的16个数据库,不能修改下标,可通过select切换
  • 2、清空数据库的命令:
    flushdb:清空当前数据库的数据
    flushall:清空所有数据库的数据

七、主从复制

  • 1、过程
    a、从往主发送sync命令
    b、主往从发送rdb
    c、主往从发送命令
  • 2、配置步骤
    主:无须配置
    从:slaveof masterip masterport
  • 3、实验
    1、往主写数据,观察从是否同步
    2、关闭主,往从写数据—>主死了从只能读

八、redis-cluster

  • 1、为什么节点之间要相互ping pong?
    投票容错
  • 2、为什么要投票容错?
    集群中有一个节点fail整个集群都会fail
  • 3、为什么连哪一台都行?集群中有一个节点fail整个集群都会fail?
    redis集群中有16384个槽,分给了3个节点,存取数据时:crc16(key) % 16384=0~16383
  • 4、redis集群是多少台?
    投票容错超过半数:3台 高可用:3台
  • 5、搭建步骤
    • 1)删除redis中的持久化文件
      cd /usr/local/redis/bin
      rm -f dump.rdb
      rm -f appendonly.aof
    • 2)安装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
    • 3)开启集群
      vim /usr/local/redis/bin/redis.conf
      cluster-enabled yes
    • 4)拷贝6个节点
      cd /usr/local
      mkdir redis-cluster
      cp -r /usr/local/redis /usr/local/redis-cluster/redis-7001
      cp -r /usr/local/redis /usr/local/redis-cluster/redis-7002
      cp -r /usr/local/redis /usr/local/redis-cluster/redis-7003
      cp -r /usr/local/redis /usr/local/redis-cluster/redis-7004
      cp -r /usr/local/redis /usr/local/redis-cluster/redis-7005
      cp -r /usr/local/redis /usr/local/redis-cluster/redis-7006
    • 5)修改端口号
      vim /usr/local/redis-cluster/redis-7001/bin/redis.conf
      port 7001
      vim /usr/local/redis-cluster/redis-7002/bin/redis.conf
      port 7002
      vim /usr/local/redis-cluster/redis-7003/bin/redis.conf
      port 7003
      vim /usr/local/redis-cluster/redis-7004/bin/redis.conf
      port 7004
      vim /usr/local/redis-cluster/redis-7005/bin/redis.conf
      port 7005
      vim /usr/local/redis-cluster/redis-7006/bin/redis.conf
      port 7006
    • 6)编写启动集群的脚本
      vim /usr/local/redis-cluster/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
    • 7)使用ruby脚本搭建redis集群
      cd /usr/upload/redis-3.0.0/src
      ./redis-trib.rb create --replicas 1 192.168.204.132:7001 192.168.204.132:7002 192.168.204.132:7003 192.168.204.132:7004 192.168.204.132:7005 192.168.204.132:7006
    • 8)测试
      • ①测试存储数据
        ./redis-cli -c -p 7001
        set str 123
        … …
      • ②测试高可用
        127.0.0.1:7001> cluster nodes
        ./redis-cli -p 7001 shutdown
        127.0.0.1:7002> cluster nodes

九、redis的五种数据类型

redis的五种数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值