zoukankan      html  css  js  c++  java
  • FusionInsight大数据开发---Redis应用开发

    Redis应用开发

    要求:

    1. 了解Redis应用场景
    2. 掌握Redis二次开发环境搭建
    3. 掌握Redis业务开发

    Redis简介

    • Redis是一个基于网络的,高性能key-value内存数据库
    • Redis根memcached类似,不过数据可持久化,而且支持的数据类型很丰富。支持在服务端计算集合的并、交和补集等,还支持多种排序功能。

    Redis使用场景有如下几个特点:

    1. 高性能
    2. 低延迟
    3. 丰富数据结构存取
    4. 支持持久化

    Redis应用场景介绍
    Redis提供了灵活多变的数据结构和数据操作,主要应用于如下场景:

    1. 取最新N个数据的操作,比如典型的取某网站的最新文章。
    2. 排行榜应用,取TOP N操作。
    3. 需要精准设定过期时间的应用。
    4. 计数器应用,比如记录用户访问网站的次数。
    5. 构建队列系统
    6. 缓存,如缓存关系数据库中的频繁访问的表数据。

    架构回顾

    1. 无中心自组织的结构,节点之间使用Gossip协议来交换节点状态信息。
    2. 个节点维护Key->Server的映射关系。
    3. Client可以向任意节点发起请求,节点不会转发请求,只是重定向Client
    4. 如果在Client第一次请求之间,Cluster拓扑发生改变,则第二次重定向请求将被再次重定向,直到找到正确的Server为止。

    Redis应用开发
    设计Redis数据结构

    1. 取最新N个数据的操作:list
    2. 排行榜应用,取TOP N操作。以某个条件为权重,比如按顶的次数排行:sorted set。
    3. 利INCR,DECR命令来构建计数器系统。、
    4. Uniq操作,获取某段时间所有数据排重值:set。
    5. 使用list可以构建队列系统

    Redis应用开发
    根据场景开发工程

    1. 梳理业务场景流
    2. 设计各模块接口
    3. 如果使用的是安全集群,需要进行安全认证
    4. 熟悉Redis提供的相应API
    5. 调用业务需要的API实现各功能

    数据结构设计

    • 计算过程中使用的用户信息使用hash结构存取,KEY设计为userinfo-<user id>,
    • field为用户的属性。

    数据读写原则

    • MR任务每天定时将用户信息从后端存储源(HBase)批量导入Redis中。
    • 业务系统获取数据时,先从Redis中获取,获取不到再取后端HBase获取即实时计算,并同步写入到Redis。

    样例说明-String类型操作

    1. set:将字符串值value关联到key
    2. get:返回key所关联的字符串值,
    3. setex:将字符串值value关联到key,并设置key的生存时间
    4. append:将value追加到key原值的末尾,类似Java String类型的“+”操作。

    样例说明-List类型操作

    1. Ipush/rpush:往列表头/尾添加一个元素。
    2. Irange:返回列表中start至end之间的元素
    3. llen:返回列表的长度
    4. lpop/rpop:从列表头/尾获取一个元素,并将其中列表中删除。

    样例说明-Hash类型操作

      • hset
      • hget
      • hgettall
      • hmset
      • hincrby
      • hkeys
      • hvals
      • hmget
      • hexists
      • hdel
  • 相关阅读:
    如何在Nginx下配置PHP程序环境
    Nginx服务器不支持PATH_INFO的问题及解决办法
    php内置函数分析之str_pad()
    php常用几种设计模式的应用场景
    func_get_args()在php71与php56的区别
    Restful api 防止重复提交
    Game-Tech小游戏专场第二趴,这次帝都见
    入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能
    入门系列之在Ubuntu上使用Netdata设置实时性能监控
    叶聪:朋友圈背后的计算机视觉技术与应用
  • 原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/11251787.html
Copyright © 2011-2022 走看看