`
zh_harry
  • 浏览: 102523 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
877aca81-daac-33c8-8bf9-3a886cebc6c3
自己动手写java 框架
浏览量:28432
社区版块
存档分类
最新评论

REDIS客户端封装实践2

    博客分类:
  • JAVA
阅读更多

接上一篇

[REDIS客户端封装意淫](https://www.jianshu.com/p/03132e0d50e2)

 

对现在有接口,进一步重构。

 

 

  1. 进一步对客户端友好封装,对数据类型的转换,封装进框架内。
  2. 增加CacheDataNotFound hook,并保留原有异常抛出接口,提供客户端灵活调用。
  3. 对key的business 部分提供灵活扩展接口,为特定业务的监控提供扩展。
  4. 接口不只依赖redis,理论上可以对redis 的不同接口进行实现,包括jedis sharded jedis jedisson以及其他异构缓存系统。
  5. 将接口按类型进行拆分,避免类过于宠大,不利于维护。
  6. 提供monitor接口 befare和montor 方法,客户端可根据需要进行扩展,如果需要对redis 限流,可实现before接口,如果不需要则直接返回true。
  7. 提供限流工具类。AbstractLock 客户端可以根本需要进行实现。
  8. 将redis 客户端从sparrow 分拆出来,单独部署,单独维护,单独版本控制。

实现类图如下


class-diagram.png
class-diagram.png

测试用例
https://github.com/sparrowzoo/sparrow-test

欢迎大家转载,也欢迎各位有兴趣的朋友一起加入.
由于个人能力有限,难免有些不足之处,警请谅解。谢谢!

GITHUB 地址

https://github.com/sparrowzoo/sparrow-sharded-jedis

1
0
分享到:
评论

相关推荐

    Redis协议客户端模块.rar

    通过深入理解Redis协议和易语言的特性,开发者可以构建一个高效、稳定的Redis客户端模块,为应用程序提供强大的数据存储和处理能力。在实际项目中,应结合具体需求对模块进行定制和优化,确保其满足性能和功能的要求...

    Asp.net 封装Redis帮助类

    首先,`StackExchange.Redis.dll`是.NET平台上的一个流行的Redis客户端库,它提供了一组丰富的API来与Redis服务器通信。这个库使得.NET开发者能够方便地集成Redis到他们的应用中,处理各种数据结构如字符串、列表、...

    Redis深度历险:核心原理和应用实践.zip

    2. **Redis应用实践**: - **缓存**:Redis的高速读写性能使其成为理想的缓存解决方案,可以缓解数据库的压力,提高Web应用的响应速度。 - **消息队列**:通过发布/订阅模式或列表数据结构,Redis可以实现简单的...

    windows下c#操作redis类

    首先,你需要一个C#的Redis客户端库。StackExchange.Redis是一个广泛使用的开源库,它提供了丰富的API,可以直接在C#代码中与Redis服务器通信。你可以通过NuGet包管理器来安装这个库,命令如下: ```shell Install-...

    RedisTest.rar

    StackExchange.Redis是.NET平台上广泛使用的Redis客户端,提供了丰富的功能和良好的性能。 首先,让我们深入了解一下Redis的基础知识。Redis作为一个内存数据存储系统,支持多种数据结构,如字符串、哈希、列表、...

    Redis 高可用架构最佳实践.ppt

    封装客户端直连Sentinel端口能更快速地检测到故障,但对客户端有所侵入,且需要Sentinel服务器开放访问权限。 Redis Cluster是官方提供的原生集群方案,它集成了所有功能,简化了部署,节约了资源,并支持自动故障...

    c++ 操作redis数据库

    2. C++库选择:熟悉cpp-redis、hiredis等C++ Redis客户端库,了解其API用法。 3. 网络编程:理解TCP/IP协议基础,能够建立和管理网络连接。 4. 数据序列化:了解如何将C++的数据结构转换为Redis能识别的命令格式,...

    订单号的生成redis中获取

    首先,`DataFactory.java`可能是一个工厂类,用于创建与数据操作相关的对象,如数据库连接或Redis客户端。在这个上下文中,它可能包含初始化Redis连接的方法,以便在需要时生成订单号。 `HbpayJshAcctServiceImpl....

    Go-Go-Redis是Redis数据库的GoogleGo语言的客户端开发包

    // 创建一个Redis客户端实例 rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB }) // 使用ping命令检查连接 pong, err := rdb.Ping...

    redis架包下载

    Jedis是Java语言编写的Redis客户端,而`common-pool-1.5.5`是Apache Commons Pool库,它提供对象池服务,可以帮助优化资源管理,比如数据库连接或网络套接字。 在学习Redis时,首先你需要理解它的基本概念。Redis...

    很全面的Redis教程(在java和c#中安装教程、工具类、架包、以及桌面客户端等)

    - **Helenos**:另一款开源的Redis客户端,提供了类似SQL的查询语法,便于数据探索。 5. **Redis实战**: - **数据结构**:Redis支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和...

    go语言学习 - 封装redis常用基本命令.zip

    在实际项目中,Go的Redis客户端库如`go-redis`或`redigo`经常被用到。这些库提供了高级的接口,简化了与Redis的交互。例如,`go-redis`库支持事务、发布/订阅、lua脚本等功能,这些都是Redis的重要特性。 压缩包内...

    delphi7_redis.zip

    首先,我们要了解的是如何在Delphi 7中构建一个基本的Redis客户端。此压缩包中的"pRedisClientTest"项目,包含了一系列的源文件和配置文件,如`.dfm`(Form文件)、`.dpr`(项目文件)、`.dpu`(单元文件)等,这些...

    redis jredis jedis 使用

    JRedis是一个简单的、轻量级的Redis客户端,它提供了一个直观的API来操作Redis服务器。用户可以通过JRedis连接到Redis服务器,执行基本的命令如设置和获取键值,以及操作列表、集合等数据结构。然而,JRedis的开发...

    服务端封装数据库操作客户端调用

    在IT行业中,服务端封装数据库操作并允许客户端调用是一种常见的设计模式,它有利于实现业务逻辑的解耦、代码复用以及系统间的高效协作。以下将详细解释这一过程中的关键知识点。 1. **服务端封装**:服务端,通常...

    redis操作源代码以及查看redis的情况的辅助代码以及redis安装包

    3. **事务处理**:Redis支持单个命令或多个命令的原子性执行,源代码中可能包括如何封装和发送多条命令以执行事务的示例。 4. **发布/订阅模式**:Redis提供了发布/订阅功能,源代码可能包含发布者和订阅者的客户端...

    windows 64位 redis 3.2.1

    此外,还可以使用各种编程语言(如Python、Java、C#)的Redis客户端进行交互。 4. **数据类型与操作**:Redis支持多种数据结构,包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted ...

    REDIS_APPLY.zip

    Redis是世界上最受欢迎的内存数据存储系统之一,常用于缓存、数据库和消息中间件。在本`REDIS_APPLY.zip`压缩包中,我们看到的是...通过分析和运行这个项目,你可以深入理解Redis的C#客户端使用、集群配置和测试实践。

    REDIS 入门指南pdf

    以上是 Redis 入门的基本知识点,深入学习 Redis 还需实践操作和理解其内部机制。通过阅读《REDIS 入门指南》这本书籍,你将能更全面地了解 Redis 的功能和应用场景,为你的程序员进阶之路添砖加瓦。

    C#开发Redis的dll

    例如,StackExchange.Redis是一个流行的C# Redis客户端库,它提供了丰富的API来与Redis交互。 在开始之前,确保你的开发环境已经安装了Visual Studio。然后,你需要将压缩包中的dll文件添加到你的C#项目中。这可以...

Global site tag (gtag.js) - Google Analytics