redis笔记

一、redis五种数据类型

  String、list、hash、set、sortedSet

二、redis命令

  1、String

    新增:set key value

    查询:get key

    删除:del key

  2、hash

    新增:hset key filed value

    查询:hget key filed

      获取所有:hgetall key

    删除:hdel key filed

  3、list(可以重复)

    新增:

      左新增:lpush key value

      右新增:rpush key value

    查询:

      查询:lrange key start end

      查询所有:lrange key 0 -1

    删除:

      lpop key删除最左边元素

      lpop key num 从左边开始,删除num个元素

  4、set(不允许重复,无序数据)

    新增:sadd key [value1,value2,value3...]

    查询:smembers key 获取所有key元素

    删除:srem key value,删除value元素

  5、sortedset(不允许重复,有序列表,常用于存储分数)

    新增:zadd key score value

    查询:zrange key start end

       zrange key 0 -1 查询所有

         zrange key 0 -1 withscores

    删除:zrem key value

三、redis通用命令

  1、keys *查询所有key

  2、del key 删除指定key

  3、type key 查询key类型

四、redis启动命令和客户端连接命令

  1、启动命令

    ./bin/redis-server config/redis.conf

  2、客户端登录命令

    ./bin/redis-cli -a redis123456

五、redis持久化机制

  1、RDB默认持久化机制,根据设置一定时间间隔将数据持久化

# 900秒内,如果至少有1个key被修改,则执行bgsave , 如果是save "" 则表示禁用RDB
        save 900 1  
        save 300 10  
        save 60 10000
# 是否压缩 ,建议不开启,压缩也会消耗cpu,磁盘的话不值钱
        rdbcompression yes
# RDB文件名称
        dbfilename dump.rdb  
# 文件保存的路径目录
        dir ./

  2、AOF可以记录每一次命令日志,每执行一次将数据持久化到磁盘中。

# 是否开启AOF功能,默认是no
        appendonly yes
# AOF文件的名称
        appendfilename "appendonly.aof"
# 表示每执行一次写命令,立即记录到AOF文件
        appendfsync always 
# 写命令执行完先放入AOF缓冲区,然后表示每隔1秒将缓冲区数据写到AOF文件,是默认方案
        appendfsync everysec 
# 写命令执行完先放入AOF缓冲区,由操作系统决定何时将缓冲区内容写回磁盘
        appendfsync no

五、redis主从【单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。】

   1、主从集群配置,在redis.conf配置文件添加

在非master节点的redis.conf配置文件添加一行
slaveof <masterip> <masterport>  //redis5.0以前
或者
replicaof <masterip> <masterport>
查看主从节点状态命令
  info replication
重启redis,发现只能在主节点才能写入数据,从节点只能查询数据。

  2、数据同步

    2.1、主从第一次连接时,会执行全量同步。

    如何判断第一次连接?

    redis会根据一个replid。如果replid一致说明是统一数据集,每个master都有唯一的replid。slave则会继承master节点的replid。另外offset偏移量,随着记录在repl_baklog中的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset。如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。当从节点做数据同步时,必须向主节点声明自己的repid和offset,主节点才可以判断同步那些数据。

       2.2增量同步。就是只更新slave和master存在差异的部分数据。

      

    

      

      

    

posted @ 2022-04-18 19:33  苦逼的1024  阅读(50)  评论(0)    收藏  举报