单机配置

redis.properties配置

#redis的服务器地址
redis.host=127.0.0.1 #redis的服务端口
redis.port=6379 #客户端超时时间单位是毫秒
redis.timeout=100000 #最大建立连接等待时间
redis.maxWaitMillis=1000 #最小空闲数
redis.minIdle=5 #最大空闲数
redis.maxIdle=20 #最大连接数
redis.maxTotal=100

xml配置

<!-- 读取properties文件 -->
<bean id="propertyConfigurerForProject1"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="1" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
<property name="ignoreResourceNotFound" value="true" />
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="locations">
<list>
<value>classpath*:redis.properties</value>
</list>
</property>
</bean> <!-- Jedis连接池的配置对象 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!--最大空闲数 -->
<property name="maxIdle" value="${redis.maxIdle}" />
<!--最小空闲数 -->
<property name="minIdle" value="${redis.minIdle}" />
<!--最大连接数 -->
<property name="maxTotal" value="${redis.maxTotal}" />
<property name="testOnBorrow" value="true" />
<!--最大建立连接等待时间 -->
<property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
</bean> <!--jedis服务器信息 -->
<bean id="jedisShardInfo" class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="${redis.host}" />
<constructor-arg index="1" value="${redis.port}" type="int" />
<constructor-arg index="2" value="${redis.timeout}"
type="int" />
</bean> <!--jedis连接池 -->
<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1">
<list>
<ref bean="jedisShardInfo" />
</list>
</constructor-arg>
</bean> <!-- Redis连接工厂 -->
<bean id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="shardInfo" ref="jedisShardInfo" />
<property name="poolConfig" ref="jedisPoolConfig" />
</bean> <!-- 缓存序列化方式 -->
<!--对key的默认序列化器。默认值是StringSerializer -->
<bean id="keySerializer"
class="org.springframework.data.redis.serializer.StringRedisSerializer" /> <!--是对value的默认序列化器,默认值是取自DefaultSerializer的JdkSerializationRedisSerializer。 -->
<bean id="valueSerializer"
class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" /> <!-- redis操作模板,对Jedis进行的通用API操作 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory" />
<property name="keySerializer" ref="keySerializer" />
<property name="valueSerializer" ref="valueSerializer" />
<property name="hashKeySerializer" ref="keySerializer" />
<property name="hashValueSerializer" ref="valueSerializer" />
</bean>

自2.0开始,针对单机配置引入RedisStandaloneConfiguration 并且废弃了JedisConnectionFactoryHostNamePortPassword等属性的配置。

    /**
* 连接工厂类
* @return
*/
@Bean
public JedisConnectionFactory jedisConnectionFactory(){
// 单机配置
RedisStandaloneConfiguration standaloneConfig = new RedisStandaloneConfiguration();
standaloneConfig.setHostName("127.0.01");
standaloneConfig.setPort(6379); JedisConnectionFactory connectionFactory = new JedisConnectionFactory(standaloneConfig); return connectionFactory;
}

哨兵配置

为了处理高可用性的Redis,可以使用RedisSentinelConfiguration支持Redis Sentinel

/**
* jedis
*/
@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);
}

可以配置的属性:

spring.redis.sentinel.master:master节点的名字

spring.redis.sentinel.nodes:主机:端口的逗号分隔列表

集群配置

 @Bean
public JedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
// 集群配置
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration();
RedisNode redisNode7000 = new RedisNode("10.1.21.4", 7000);
RedisNode redisNode7001 = new RedisNode("10.1.21.4", 7001);
RedisNode redisNode7002 = new RedisNode("10.1.21.4", 7002);
RedisNode redisNode7003 = new RedisNode("10.1.21.4", 7003);
RedisNode redisNode7004 = new RedisNode("10.1.21.4", 7004);
RedisNode redisNode7005 = new RedisNode("10.1.21.4", 7005); redisClusterConfiguration.addClusterNode(redisNode7000);
redisClusterConfiguration.addClusterNode(redisNode7001);
redisClusterConfiguration.addClusterNode(redisNode7002);
redisClusterConfiguration.addClusterNode(redisNode7003);
redisClusterConfiguration.addClusterNode(redisNode7004);
redisClusterConfiguration.addClusterNode(redisNode7005);
connectionFactory = new JedisConnectionFactory(redisClusterConfiguration); // 设置连接池配置
connectionFactory.setPoolConfig(jedisConfig()); // 设置数据库,默认0
connectionFactory.setDatabase(2); // 设置使用连接池
connectionFactory.setUsePool(true); return connectionFactory;
}

配置说明

1. 以上配置是基于Jedis客户端的
2. 使用javaCode或者xml的配置方式依据个人喜好

Spring Data Redis入门示例:程序配置(五)的更多相关文章

  1. Spring Data Redis入门示例:数据序列化 (四)

    概述 RedisTemplate默认使用的是基于JDK的序列化器,所以存储在Redis的数据如果不经过相应的反序列化,看到的结果是这个样子的: 可以看到,出现了乱码,在程序层面上,不会影响程序的运行, ...

  2. Spring Data Redis入门示例:基于Jedis及底层API (二)

    使用底层API:RedisConnectionFactory和RedisConnection可以直接操作Redis,下面是一个简单的例子: ### Maven依赖 <properties> ...

  3. Spring Data Redis入门示例:字符串操作(六)

    Spring Data Redis对字符串的操作,封装在了ValueOperations和BoundValueOperations中,在集成好了SPD之后,在需要的地方引入: // 注入模板操作实例 ...

  4. Spring Data Redis入门示例:Hash操作(七)

    将对象存为Redis中的hash类型,可以有两种方式,将每个对象实例作为一个hash进行存储,则实例的每个属性作为hash的field:同种类型的对象实例存储为一个hash,每个实例分配一个field ...

  5. Spring Data Redis入门示例:基于RedisTemplate (三)

    使用底层API:RedisConnection操作Redis,需要对数据进行手动转换(String <---->byte),需要进行多数重复性工作,效率低下:org.springframe ...

  6. spring data redis使用示例

    1. 配置依赖文件 <dependencies> <dependency> <groupId>org.springframework.data</groupI ...

  7. Spring Data Redis —— 快速入门

    环境要求:Redis 2.6及以上,javase 8.0及以上: 一.Spring Data Redis 介绍 Spring-data-redis是spring的一部分,提供了在srping应用中通过 ...

  8. Spring Data Redis示例

    说明 关于Redis:一个基于键值对存储的NoSQL内存数据库,可存储复杂的数据结构,如List, Set, Hashes. 关于Spring Data Redis:简称SDR, 能让Spring应用 ...

  9. spring data redis jackson 配置,工具类

    spring data redis 序列化有jdk .jackson.string 等几种类型,自带的jackson不熟悉怎么使用,于是用string类型序列化,把对象先用工具类转成string,代码 ...

随机推荐

  1. django上课笔记7-jQuery Ajax 和 原生Ajax-伪造的Ajax-三种Ajax上传文件方法-JSONP和CORS跨域资源共享

    一.jQuery Ajax 和 原生Ajax from django.conf.urls import url from django.contrib import admin from app01 ...

  2. 任务29:自己动手构建RequestDelegate管道

    cmd创建一个控制台应用程序 dotnet new console --name MyPipeline 用VSCode打开这个项目 新建类RequestDelegate.cs的类文件复制Program ...

  3. adb logcat 查看日志 (转载)

    转自:http://blog.csdn.net/xyz_lmn/article/details/7004710 使用 logcat 命令 查看和跟踪系统日志缓冲区的命令logcat的一般用法是: [a ...

  4. Oracle 正则化

    摘抄自:http://www.cnblogs.com/scottckt/archive/2012/10/11/2719562.html ORACLE中的支持正则表达式的函数主要有下面四个: 1,REG ...

  5. charles之抓包和断点

    一 .charles抓包 Charles抓包很简单,只要手机设置代理即可,不会的也可以去百度. 在这里是要记录抓包过程中win10遇到的问题,手机代理设置没问题但是就是抓不到包的情况 1.关闭防火墙 ...

  6. 关于在@Controller所返回的视图的css,js文件404问题

    本人在使用layui打开一个请求后台的页面时,页面成功由controller重定向到了正确的位置,然而几乎所有的js文件和css文件都报404,并且确定这些css文件还有js文件的引入的路径都是正确的 ...

  7. ES相关概念理解

    Elasticsearch特点:分布式,高性能,高可用,高伸缩的搜索和分析: 1)可作为一个大型分布式集群,处理PB级别的数据,服务大型公司,亦可运行在少数或单台设备上服务小型公司 分布式的特性: E ...

  8. ubuntu server 14.04LTS升级Python3.5

    依次执行如下命令:需要root权限,普通用户可以使用sudo 来执行以下命令 root@ubuntu-server:~# add-apt-repository ppa:fkrull/deadsnake ...

  9. 常用的HTML5 pattern属性

    type="tel" 和 type="number" 的区别 这里还是先那么先交代一下最初遇到的问题.其实无论是tel还是number都不是完美的: type= ...

  10. kde framework概述(KDE Framework译文)

    KDE Frameworks 基于QT框架,提供简单实用的类(例如那些KCoreAddons里的类)去为桌面应用的日常需要整合出解决方案(例如KNewStuff用于在应用中获取可下载的附加内容,或者那 ...