2016-7-8月的一些计划

来源:互联网 发布:我眼中的网络写作 编辑:程序博客网 时间:2024/05/16 01:05

很久没有打理博客了,现在还是要回到初心,重拾昔日的求知心态。计划尽量完成每个月的计划和分享一些当月的学习进展。

计划大概是:

  1. 了解redis和zoonkeeper的基本使用,实现分布式锁的场景
  2. 学习hive,写几个示例熟悉下数据的导入、导出和计划。
  3. Spark列入9月份的计划。

redis的常用命令:http://doc.redisfans.com/

一、使用redis使用分布式锁,2种方案

方案1:

1. setnx命令设置key, lockvalue

2. 使用expire设置key的过期时间

3. 作业执行完成delete key

方案2 :

1. setnx命令设置key,val(当前时间+超时时间),如设置失败转向第2步

2. getkey的val,比较系统当前时间和超时时间,判断是否过期。是,转向3。

3. getset命令设置值,判断get值是否和getset的返回值是否相等,从而判断是否获得分布式锁。

4. 获得锁后,执行作业,如作业处理时间未超时,删除key。否则,跳过。


二、频道和订阅

  SUBSCRIBE 、 UNSUBSCRIBE 和 PUBLISH 三个命令实现了发布与订阅信息泛型(Publish/Subscribe messaging paradigm), 在这个实现中, 发送者(发送信息的客户端)不是将信息直接发送给特定的接收者(接收信息的客户端), 而是将信息发送给频道(channel), 然后由频道将信息转发给所有对这个频道感兴趣的订阅者.

语法:

发布频道: publish channel msg

订阅:  Subscribe  channel msg

模式订阅: PSUBSCRIBE

取消订单:  UNSUBSCRIBE


三、持久化

RDF: 使用快照技术保存某个时间点的redis所有数据,优点是数据紧凑、恢复速度快,缺点时无法完全避免服务器故障而引起的数据丢失。

AOF: 一个只进行追加操作的日志文件,以 Redis 协议的格式保存。缺点是体积大、恢复慢


四、事务

    涉及的命令有: MULTI 、 EXEC 、 DISCARD 和 WATCH。 multi用户开启一个事务,exec用于执行事务队列中的命令,discard用户清空事务队列。WATCH 命令可以为 Redis 事务提供 check-and-set (CAS)行为,被 WATCH 的键会被监视,并会发觉这些键是否被改动过了。 如果有至少一个被监视的键在 EXEC 执行之前被修改了, 那么整个事务都会被取消, EXEC 返回空多条批量回复(null multi-bulk reply)来表示事务已经失败。


0 0
原创粉丝点击