jmind-redis一个redis的nio客户端

Redis是一个基于key/value的系统。Redis目前最新版本是2.2.4,用着很不错,不过java版本的客户端比较的不给力,目前redis 客户端jedis 是基于io 的socket 。 而不是基于nio 的。所以我自己写了一个基于nio的高效客户端【jmind-redis】。
  jmind-redis是一个以高性能、简单易用为目标的Redis java client,使用二进制协议实现, 是一个可伸缩线程安全的Redis客户端,多个线程可以共享同一个Connection。它利用优秀netty NIO框架来高效地管理多个连接。
  经过与Redis.io上面推荐的客户端(JRedis、Jedis)做过对比后,个人认为要优于它们,因此以开源的方式发布出来,欢迎大家试用并反馈建议和意见。 
  代码在【http://git.oschina.net/wbxie/jmind-redis.git】,目前还未发布任何正式版本,不过所有的redis功能已经基本完成,junit测试用例也都完成并全部通过测试了,后面的工作主要就是补文档、示例代码等。 
  

http://git.oschina.net/jmind/jmind-redis

时间: 2024-11-07 20:34:16

jmind-redis一个redis的nio客户端的相关文章

搭建一个redis高可用系统

一.单个实例 当系统中只有一台redis运行时,一旦该redis挂了,会导致整个系统无法运行. 单个实例 二.备份 由于单台redis出现单点故障,就会导致整个系统不可用,所以想到的办法自然就是备份(一般工业界认为比较安全的备份数应该是3份).当一台redis出现问题了,另一台redis可以继续提供服务. 备份 三.自动故障转移 虽然上面redis做了备份,看上去很完美.但由于redis目前只支持主从复制备份(不支持主主复制),当主redis挂了,从redis只能提供读服务,无法提供写服务.所以

redis源码学习(客户端)

大概介绍 redis 客户端设计主要是存储客户的链接,请求,请求解析的命令,执行结果.先看server的结构和client的结构,server里面有多个client,相当于一个服务端可以连多个客户端,服务端根据事件触发模式依次处理客户端的请求. server结构 struct redisServer { /* General */ // 配置文件的绝对路径 char *configfile; /* Absolute config file path, or NULL */ // serverCr

Redis 学习(三)redis服务器集群、客户端分片

下面是来自知乎大神的一段说明,个人觉得非常清晰,就收藏了. 为什么集群? 通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取.Redis是一个很好的Cache工具.大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢? 首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scale out横向可伸缩扩展,这需要由多台主机协同提供服务,即分布式多个Re

【Redis】redis的安装、配置运行及Jedis客户端的开发使用

定义: Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets,sorted sets, bitmaps and hyperloglogs. 下载: http://redis.io/download

Redis Admin UI——一个Redis UI管理界面

Redis Admin UI--一个Redis UI管理界面 Redis的管理UI是由两部分组成: 1.An Ajax客户端的Web应用程序(基于谷歌的闭合库开发的:https://github.com/google/closure-library),它作为一个简单的静态HTML/ JS/ CSS的应用程序,可以很容易地修改,并从服务器组件分离和托管任何静态HTTP文件服务器上. 2.一个ServiceStack http://www.servicestack.net/ ASP.NET Web服

一个Redis实例适合存储不同应用程序的数据吗?

Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念. Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中.这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似,所以可以将其中的每个字典都理解成一个独立的数据库. 每个数据库对外都是一个从0开始的递增数字命名,Redis默认支持16个数据库(可以通过配置文件支持更多,无上限),可以通过修改redis.co

阿里云-Redis-Help-连接实例-Redis客户端连接:Jedis客户端

ylbtech-阿里云-Redis-Help-连接实例-Redis客户端连接:Jedis客户端 1.返回顶部 1. Jedis客户端 Jedis客户端访问云数据库Redis版服务,有以下两种方法: Jedis单链接 JedisPool连接池连接 操作步骤如下: 下载并安装Jedis客户端,详细步骤请参见Jedis使用说明. Jedis单连接示例 打开Eclipse客户端,创建一个Project,输入如下代码段: import redis.clients.jedis.Jedis; public c

最简单的启动并连接一个redis的docker容器

启动一个容器: $ sudo docker run --name <name> -d redis 连接一个容器: sudo docker run -it --link <name>:redis --rm redis sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"' 172.17.0.13:6379> set name

写一个Redis封装类

打算自己封装一个Redis操作类,方便使用,且有一定log记录.Redis的封装思路:基于Redis类进一步封装 一般属性 单例 (配置参数从配置文件中读取还是写死?考虑多配置之间切换) 常规操作根据业务单独处理.(注意健壮性和容错) 目的不同,可能做的封装也同.我们要基于业务做一些抽象程度较低的封装,也会根据需要,做一些tool级别的高抽象的封装.如果抽象的足够高,可以让通用性变得更好.这次封装Redis,我先做一个通用性的Redis操作类,先仅作最基本的一些操作. 代码如下: <?php /