大数据学习第14天

redis笔记

String组命令

设置字符串值 set get
SET key value [EX seconds] [PX milliseconds] [NX|XX]
EX 设置过期时间,秒,等同于SETEX key seconds value
PX 设置过期时间,毫秒,等同于PSETEX key milliseconds value
NX 键不存在,才能设置,等同于SETNX key value
XX 键存在时,才能设置
设置多个键的字符串值
MSET key value [key value ...]
键不存在时,设置字符串值
MSETNX key value [key value ...]
注意是原子操作,对多个kv,要不成功都不成功
生存时间
Redis中可以给Key设置一个生存时间(秒或毫秒),当达到这个时长后,这些键值将会被自动删除
设置多少秒或者毫秒后过期
EXPIRE key seconds
set key val ex 10或者 setex key time(s) value
PEXPIRE key milliseconds
设置在指定Unix时间戳过期
EXPIREAT key timestamp
PEXPIREAT key milliseconds-timestamp
删除过期
PERSIST key
Time To Live,Key的剩余生存时间
查看剩余生存时间
TTL key
PTTL key
key存在但没有设置TTL,返回-1
key存在,但还在生存期内,返回剩余的秒或者毫秒
key曾经存在,但已经消亡,返回-2(2.8版本之前返回-1)

key操作
查找键
KEYS pattern
pattern取值
* 任意长度字符
? 任意一个字符
[] 字符集合,表示可以是集合中的任意一个
键是否存在
EXISTS key
键重命名
RENAME key newkey
RENAMENX key newkey
键删除
DEL key [key ...]
获取值
GET key
获取多个给定的键的值
MGET key [key ...]
返回旧值并设置新值
GETSET key value
如果键不存在,就创建并赋值
字符串长度
STRLEN key
object encoding key 获取value底层存储的数据结构类型
键类型
TYPE key
字符串类型的内部编码有3种:
int:8个字节的长整型。
embstr:小于等于39个字节的字符串。
raw:大于39个字节的字符串。
Redis会根据当前值的类型和长度决定使用哪种内部编码实现。
value操作
追加字符串
APPEND key value
如果键存在就追加;如果不存在就等同于SET key value
获取子字符串 索引
GETRANGE key start end
0 3 0 -1(获取所有的内容)
索引值从0开始,负数表示从字符串右边向左数起,
-1表示最右一个字符,负号减轻复杂度
覆盖字符串
SETRANGE key offset value
步长1的增减
INCR key
DECR key
字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
步长增减 float
INCRBY key decrement
DECRBY key decrement
字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串

 zookeeper笔记

1
答:CAP定理为一个分布式集群系统只可同时满足两点,无法三者兼顾
C 一致性 数据统一更新
A 可用性 系统具有良好的响应能力
P 分区容错性 该点为必须满足项
zookeeper采用为CP模式
缺失可用性追求一致性(最终一致性),当zookeeper进行选举时整个集群不能响应请求;不能保证每次服务请求的可用性,任何时刻对zookeeper进行请求都能得到一致的结果,但当极端情况下回丢失一些请求,需重新请求.
2
答:广播模式为当client通过某个follower请求写操作时,该节点会把请求转发给leader,leader将这个请求顺序发给所有follower,当收到半数的follower的回执ACK时,leader会将该请求执行,同时将结果发送给所有的follower,放入follower的消息队列.
恢复模式为当leader宕机时进入恢复模式(进行选举),通过zid和sid进行选举leader,当leader选举出来后,并半数以上follower与新leader通信连接,状态同步后恢复模式退出.
3
答:当leader宕机或与其他server节点无法连通时进入zab恢复模式,所有observing节点不参与选主流程,只有follower节点参与选主,所有follower节点进行原子广播:给自己投票,并将投票结果分发给所有follower节点,其他节点收到结果后进行比较,选出zid(事务id)最大的节点,若zid相同,则再对比sid(server.id),选出leader
4
答:ls 查看当前zookeeper根目录所包含的文件
create 创建新的zookeeper znode节点
get 获取选中节点的信息
set 更新选中节点的信息
delete 删除选中节点的数据(不包含子节点)
delquota
ls2 查看选中节点的次级结构信息
setAcl
setquota
history 显示执行成功的命令列表
redo
printwatches
sync
listquota
rmr 删除选中节点(包含子节点)
addauth
quit 退出客户端连接
getAcl
close
connect
5
答:zookeeper本质上是一个文件系统,存储小量数据,通过分布式锁的方式进行流程控制;
hadoop案例 hadoop系统开启服务后所有的namenode对应的zkfc连接zookeeper服务器,
在指定路径下争抢创建节点,当节点被创建后,创建节点的zkfc对应的namenode上调为active转态,其他zkfc对应的namenode为standby状态,当active状态的namenode节点宕机或其对应的zkfc无法与zookeeper服务器连接进行心跳时,zookeeper服务器会将该zkfc创建的节点删除,并通过回调函数通知其他的zkfc,再进行一次争抢节点创建流程,节点创建成功后,创建该节点的zkfc通过ssh协议连接原active状态的nemenode,通过kill将其确定停止,然后将与自身对应的namenode节点上调为active.

猜你喜欢

转载自www.cnblogs.com/lkoooox/p/11061310.html