`

Redis系列之Redis客户端的实现及使用(二)

 
阅读更多

Redis支持多种语言的客户端,java客户端也有多种实现。如jedis,jredis等。而spring对redis的客户端做了一个统一封装,支持(Jedis, JRedis, and RJC)。闹米工程中采用了通过spring集成jedis的方式。

首先需要引入jar包:spring-data-redis-1.0.0.RELEASE.jar jedis-2.0.0.jar(我曾以为不需要,后来经高少峰提醒,自己去看了下spring-data-redis的源码发现里面确实引用了jedis的类)。

然后在spring配置文件中,添加如下配置

  1. <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">    
  2.         <property name="hostName" value="192.168.2.6"/>    
  3.         <property name="port" value="6379"/>    
  4. </bean>    
  5.         
  6. <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">    
  7.     <property name="connectionFactory" ref="jedisConnectionFactory"/>    
  8. </bean>  

上面在spring容器中注册了一个redisTemplate对象,使用redis时统一调用此类的方法。下面是其中的一个方法。

  1. /** 
  2.      * 有时效存储 
  3.      * @param key 
  4.      * @param value 
  5.      * @param time 
  6.      */  
  7.     public void setString(final String key, final String value, final long time) {    
  8.         template.execute(new RedisCallback<Object>() {    
  9.             @Override    
  10.             public Object doInRedis(RedisConnection connection) throws DataAccessException {  
  11.                 connection.select(selectDb);  
  12.                 connection.setEx(key.getBytes(), time, value.getBytes());  
  13.                 return true;    
  14.             }    
  15.         });    
  16.     }  

使用时,需要注意对对象进行序列化或者反序列化。connection对象中就包含了各种redis的方法。

在这里我列举了使用redis的一些建议(不一定正确)。

1.redis能解决一些问题,但是不能解决100%的问题。
2.根据实际情况,选择合适的数据类型(尽量使用hash,读取速度比较快,但是耗内存)
4.redis的实现方案最好能一起讨论之后,再实现,对redis内存中存放的数据,也需要记录,方便以后重复使用。
5.必须以mysql的数据为准,redis默认的rdb的持久化方式,当服务器挂掉后,会丢失数据。
6.现在redis的更新与同步都是通过在各种场景下通过java代码实现的(代码耦合度比较高,容易出问题)。看看能不能使用mysql binlog 的方式。
7.即便有redis的持久化,其实它的数据也是全部存放在内存中的,所以不要放入一些不必要的数据。放入数据的时候,需要判断是永久数据还是临时数据,对于临时数据,需要尽量设定redis的有效期。
8.需要以后数据量大了之后,并发量大了之后,可能会带来的一些访问延迟,内存不够等问题。
9.redis本身有内存碎片的问题,2.6版采用了新的内存管理管理器。以后建议使用2.6版本的redis。
10.redis最擅长的还是单机版的实现。如果使用持久化或者主从实现的时候,也会有很多问题,可喜的是,按照现在的产品需求与实现,我们都不需要考虑。

分享到:
评论

相关推荐

    C++ Redis 客户端简单使用

    本篇文章将深入探讨如何在C++中简单使用Redis客户端。 首先,为了在C++中与Redis进行交互,我们需要一个支持C++的Redis客户端库。常见的选择有`hiredis`,这是一个轻量级的C库,同时也提供了C++绑定。另一个是`cpp-...

    redis客户端

    RedisClient是Redis客户端的GUI工具,使用Java swt和jedis编写,可以方便开发者浏览Redis数据库。该软件支持简体中文,非常适合国内用户使用,不需要汉化就可以直接使用。RedisClient将redis数据以资源管理器的界面...

    Redis图形化桌面客户端

    **Redis图形化桌面客户端详解** Redis,全称Remote Dictionary Server,是一种开源的、基于内存的键值存储系统,常用于数据库、缓存和消息中间件等场景。它以其高性能、低延迟以及丰富的数据结构而备受青睐。为了...

    redis-desktop-manager 客户端

    Redis 客户端Redis 客户端Redis 客户端Redis 客户端Redis 客户端Redis 客户端Redis 客户端

    redis mac 客户端

    在Mac操作系统上,为了方便地管理和操作Redis数据库,我们通常会使用特定的客户端工具。"Redis Desktop Manager for Mac 0.9.3.39"就是这样一个专为Mac用户设计的图形化界面工具,它提供了直观、高效的方式来浏览、...

    redis客户端连接工具 RedisDesktopManager

    **二、Redis客户端** 1. **客户端类型**:Redis客户端分为命令行客户端(如redis-cli)和图形界面客户端(如RedisDesktopManager)。命令行客户端适用于快速操作和调试,而GUI客户端适合于日常管理和数据可视化。 ...

    redis客户端免安装版

    本资源提供的“redis客户端免安装版”是一个便捷的Redis管理工具,无需安装过程,解压后即可直接运行,方便用户快速地进行Redis服务器的数据操作与管理。 Redis Desktop Manager是这款客户端的名称,它是一个跨平台...

    redissentinel基于phpredis扩展的redissentinel客户端

    标题中的“redissentinel基于phpredis扩展的redissentinel客户端”指的是一个使用PHP语言开发的Redis Sentinel客户端,它依赖于phpredis扩展来实现与Redis Sentinel服务的交互。Redis Sentinel是Redis集群的一个重要...

    redis 客户端

    在学习 redis的时候,就利用空闲时间写出来redisClient 的工具类,该工具类重要用于对 redis 集群的操作,不仅可以对对象String对象进行操作,也可以对 Object 进行操作。希望对大家有所帮助。

    redis 免安装 redis客户端 redis-desktop-manager-0.8.8.384

    7. **消息订阅与发布**:Redis Pub/Sub 模块允许客户端订阅特定主题,发布者可以向这些主题发送消息,实现轻量级的消息队列功能。 接下来,关于“redis-desktop-manager-0.8.8.384.exe”文件,这是一个 Redis ...

    redismanage下载redis客户端 redis连接工具

    二、RedisManage客户端工具 1. 用户界面:RedisManage提供了友好的图形用户界面,使操作直观易懂,降低了使用Redis的门槛。 2. 数据操作:通过该工具,用户可以直接查看、添加、修改和删除Redis中的键值对,支持所有...

    redis windows客户端

    redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis ...

    redis windos客户端

    标签“redis工具”暗示了我们可能讨论的是Windows下的Redis客户端工具。这类工具一般具备以下特性: 1. 图形化界面:提供友好的交互式界面,使用户无需通过命令行就能操作Redis。 2. 多种数据类型支持:支持Redis的...

    redis的mac客户端管理工具

    redis客户端的连接工具,mac版本,版本号0.9.3,通过该软件可以再mac上查询redis数据库中的相关数据,比起命令行方便很对

    Windows下的最新版本的Redis,6.2.10,支持客户端连接,方便开发调试

    为了能够让广大程序员朋友们享受到这一福利,本人想尽各种办法,使用msys环境构建了一套gcc编译环境,下载Redis的源码,完成了目前最新版本的Redis在Windows环境下的二进制文件的编译,供大家使用。 目前Redis最新...

    RedisDesktopManager可视化客户端

    - **发布/订阅**:Redis的发布订阅功能可以实现消息的实时传递,常用于构建实时通信系统。 RedisDesktopManager作为Redis的可视化客户端,它的主要功能和特性包括: - **多语言支持**:支持多种语言界面,方便不同...

    RedisConnect是基于C++11实现的简单易用的Redis客户端

    RedisConnect是基于C++11实现的简单易用的Redis客户端。源码只包含一个头文件与一个命令行工具源文件,无需编译安装,真正做到零依赖。自带连接池功能,调用Setup方法初始化连接池,然后执行Instance方法就可以获取...

    linux版连接redis客户端

    日常使用linux版连接redis客户端Another-Redis-Desktop-Manager.1.3.9

    StackExchange.Redis Redis客户端

    最近需要在C#中使用Redis,在Redis的官网找到了ServiceStack.Redis,最后在测试的时候发现这是个坑,4.0已上已经收费,后面只好找到3系列的最终版本,最后测试发现还是有BUG或者是我不会用。没有办法,最好找到了...

Global site tag (gtag.js) - Google Analytics