Redis学习笔记

Redis五种常用的数据结构

结构类型结构类型存储的值常用的命令
STRING可以时字符串,数字或者浮点数   

set key value 

get key

del key

LIST链表,链表上的每个节点都包含了一个字符串

RPUSH      (将给定值推入列表的右端) 

LRANGE (获取列表的给定范围上的所有值)

LINDEX   (获取列表在给定位置上的单个元素)

LPOP       (从右端弹出一个值并返回弹出的值)

SET包含字符串的无序收集器,并且包含的字符串都是不重复的

SADD

SMEMBERS

SISMEMBER

SREM

HASH包含键值对的无序散列表

HSET

HGET

HGETALL

HDEL

ZSET字符串成员与浮点数分值之间的有序映射,元素的排列顺序由分值大小决定

ZADD

ZRANGE

ZRANGEBYSCORE

ZREM

Redis的基本事务

        Redis的基本事务需要用到MULTI命令和EXEC命令,这种事务可以让一个客户端在不被其他客户端打断的情况下执行多歌命令。被MULTI和EXEC包围的命令会一个一个地执行,直到所有的命令都执行完毕之后,Redis才会处理其他客户端的命令。但由于EXEC命令在被调用之前不会执行任何实际操作,所以用户没办法根据读取到的数据来做决定。

        Redis有5个命令可以让用户在不被打断的情况下对多个键执行操作,它们分别是WATCH、MULTI、EXEC、UNWATCH、DISCARD。因为加锁有可能会造成长时间的等待,所有Redis为了尽可能地减少客户端的等待时间、并不在执行WATCH命令时对数据进行加锁。Redis只会在数据已经被其他客户端抢先修改了的情况下通知执行了WATCH命令的客户端,这种做法被称为乐观锁。

Redis的持久化方式

方式描述特点配置
快照(snapshtting)将某一时刻的所有数据写入到硬盘里面通过发送BGSAVE或SAVE命令来创建快照,可能会丢失最近一次创建快照之后写入的数据

save 60 1000

60秒执行1000次执行一次自动快照

stop-writes-on-bgsave-error-no

执行快照失败后是否继续执行写操作

rdbcompression yes

是否对文件执行压缩

dbfilename dump.rdb

AOF(append-only file)执行写命令时将命令复制到硬盘里面

写入的内容首先会被存储到缓冲区,然后会在将来的某个时刻将缓冲区存储的内容写入到硬盘。

随着系统的运行,文件会越来越大

appendonly no

是否执行AOF持久化

appendfsync erverysec

每秒将写入的内容同步到硬盘 

no-appendfsync-on-rewite no 

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb 

 

Redis 主从链

    Redis支持主从复制,不支持主主复制,从服务器也可以拥有自己的从服务器,由此形成主从链(master/slave chaining)。

        Redis目前的复制实现只保证最终一致性,而不 是强一致性。 如果程序不能够容忍过期数据,那么就应该读取 主服务器,而不是从服务器。

  1. 一个集群由主节点和从节点组成,主节点负责储存键值对数 据,而从节点负责复制主节点。

  2. 集群将整个数据库被分为 16384 个槽,集群里面的每个主节点 处理一部分槽。

  3. 集群里面的每个节点会互相通知其他节点自己在处理哪些槽, 并且维持一个槽表。

  4. 节点执行命令前需要查看槽表,判断命令是否由该节点来执 行,如果不是的话,就向客户端返回转向错误。

  5. 集群的复制实现重用了 SLAVEOF 代码。

  6. 集群中的每个节点都可以检测其他节点是否已经下线,而在线的主节点可以对下线的主节点进行故障转移。

Sentinel

● Sentinel是一个状态机,它监视着多个实例,并 根据实例的身份和状态,对实例进行操作。

● Sentinel使用PING命令来检测实例是否在线。

● Sentinel会对下线的主服务器进行故障转移,步 骤主要有三个:

     1)选出一个从服务器;

     2)将被选 中的从服务器升级为主服务器;

     3)让其他从服务 器复制这个新的主服务器。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值