文档章节

spring data redis 指南

手绘灿烂
 手绘灿烂
发布于 2014/10/25 19:51
字数 788
阅读 771
收藏 4

前言

Spring-DATA-Redis 项目采用Spring核心概念,使用一个key-value式的数据存储解决方案的开发。我们提供了一个“template”作为用于发送和接收消息的高级抽象。你会发现相似的JDBC支持的Spring框架

配置Jedis连接

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
   <!-- Jedis ConnectionFactory --> 
   <bean id="jedisConnectionFactory"
         class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"/>
 </beans>

  当然在实际生产环境中我们还需要配置一下主机,端口 ,用户名,密码之类

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     <bean id="jedisConnectionFactory" 
         class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" 
             p:host-name="server" p:port="6379" />
</beans>

配置JRedis连接

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 
    <bean id="jredisConnectionFactory" 
        class="org.springframework.data.redis.connection.jredis.JredisConnectionFactory"
         p:host-name="server" p:port="6379"/> 
</beans>

   配置JRedis的连接池

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 <bean id="jredisConnectionFactory" 
     class="org.springframework.data.redis.connection.jredis.JredisConnectionFactory">
      <constructor-arg> 
          <bean class="org.springframework.data.redis.connection.jredis.DefaultJredisPool">
               <constructor-arg value="localhost" />
               <constructor-arg value="6379" /> 
          </bean> 
      </constructor-arg>
   </bean> 
</beans>

Configuring SRP connector 

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 <bean id="srpConnectionFactory" 
     class="org.springframework.data.redis.connection.srp.SrpConnectionFactory" 
     p:host-name="server" p:port="6379"/> 
 </beans>

Configuring Lettuce connector

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 
        <bean id="lettuceConnectionFactory" 
            class="org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory" 
            p:host-name="server" p:port="6379"/>
 </beans>

Redis Sentinel 支持

@Bean public RedisConnectionFactory jedisConnectionFactory() { 
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration() .master("mymaster") 
    .sentinel("127.0.0.1", 26379) .sentinel("127.0.0.1", 26380); 
    return new JedisConnectionFactory(sentinelConfig); 
}


了解和使用RedisTemplate

方法参考

ValueOperations : Redis String(or value) operations

ListOperations : Redis list operations

SetOperations : Redis set operations

ZSetOperations :Redis zset(or sorted set) operations

HashOperations : redis hash operations


BoundValueOperations : Redis String(or value) key bound operations

BoundListOperations : Redis list key bound operations

BoundSetOperations : Redis set key bound operations

BoundZSetOpertions : Redis zset key bound operations

BoundHashOpertions : Redis hash key bound opertions 


如何使用RedisTemplate(jedis 使用了pool)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectio            nFactory" p:use-pool="true"/>
  <!-- redis template definition -->
  <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" p:connection-facto        ry-ref="jedisConnectionFactory"/> 
   
</beans>
public class Example { 
     // inject the actual template 
     @Autowired 
     private RedisTemplate<String, String> template;
     // inject the template as ListOperations 
     @Resource(name="redisTemplate") 
     private ListOperations<String, String> listOps;
     
     public void addLink(String userId, URL url) {   
        listOps.leftPush(userId, url.toExternalForm()); 
     }
 }


StringRedisTemplate

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectio        nFactory" p:use-pool="true"/> 
 <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate" p:connec        tion-factory-ref="jedisConnectionFactory"/> 
  </beans>
public class Example { 
@Autowired private StringRedisTemplate redisTemplate;
 public void addLink(String userId, URL url) {  
    redisTemplate.opsForList().leftPush(userId, url.toExternalForm());
   }
 }

Redis Transactions

//execute a transaction List<Object> txResults = redisTemplate.execute(new SessionCallback<List<Object>>() { 
public List<Object> execute(RedisOperations operations) throws            DataAccessException{  
   operations.multi();
   operations.opsForSet().add("key", "value1"); 
   // This will contain the results of all ops in the transaction
    return operations.exec();
     }
}); 
 System.out.println("Number of items added to set: " + txResults.get(0));


© 著作权归作者所有

手绘灿烂
粉丝 7
博文 53
码字总数 20728
作品 0
朝阳
程序员
私信 提问
Spring Cloud Data Flow 2.0.1 GA 发布

Spring Cloud Data Flow 2.0.1 GA 已发布,该版本的更新内容主要是 bug 修复和文档增强。 更新亮点如下: Skipper 服务器的 Kubernetes 部署配置使用 MySQL 作为默认数据库 删除无关的 Spri...

段段段落
03/20
0
0
Spring Boot 2.0.0 终于正式发布,重大修订版本

北京时间 2018 年 3 月 1 日早上,如约发布的 Spring Boot 2.0 在同步至 Maven 仓库时出现问题,导致在 GitHub 上发布的 v2.0.0.RELEASE 被撤回。目前问题已修复,官方重新发布了 Spring Boo...

局长
2018/03/01
34.6K
51
聊聊spring-boot-starter-data-redis的配置变更

序 本文主要研究一下spring-boot-starter-data-redis的配置变更 配置变更 以前是spring-boot的1.4.x版本的(spring-data-redis为1.7.x版本),最近切到2.0.4.RELEASEB版本(spring-data-redis为...

go4it
2018/09/05
0
0
Spring Data Redis 1.6.0 发布,ZRANGEBYLEX 支持

Spring Data Redis 1.6.0 发布,此版本更新内容如下: The Lettuce Redis driver switched from wg/lettuce to mp911de/lettuce. Support for ZRANGEBYLEX. Enhanced range operations for Z......

淡漠悠然
2015/09/04
1K
1
redis(三)与spring整合

一、 JAVA操作redis通常使用的是Jedis,通过java代码来操作redis的数据存储读取等操作,用过的人应该知道,Jedis客户端已经足够简单和轻量级了,但是呢,在此同时,Spring也为Redis提供了支持...

废柴
2018/07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

typescript 接口 函数类型 可索引类型

函数类型 可索引类型 数字索引签名 字符串索引签名 数字索引签名返回值 必须是 字符串索引签名返回值的子集 只读索引签名

lilugirl
今天
3
0
Oracle SQL语法实例合集

如需转载请注明出处https://my.oschina.net/feistel/blog/3052024 目的:迅速激活Oracle SQL 参考:《Oracle从入门到精通》 ------------------------------------------------------------......

LoSingSang
今天
2
0
增加 PostgreSQL 服务进程的最大打开文件数

https://serverfault.com/questions/628610/increasing-nproc-for-processes-launched-by-systemd-on-centos-7 要在systemd的配置里加才行...

helloclia
今天
2
0
组合模式在商品分类列表中的应用

在所有的树形结构中最适合的设计模式就是组合模式,我们看看常用商品分类中如何使用。 先定义一个树形结构的商品接口 public interface TreeProduct { List<TreeProduct> allProducts(...

算法之名
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部