spring整合jedis怎么指定密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring整合jedis怎么指定密码相关的知识,希望对你有一定的参考价值。
1、spring配置,下面是一个完整redis配置,密码只需要设置password属性。<!– jedis pool配置 –>
<bean id=”jedisPoolConfig” class=”redis.clients.jedis.JedisPoolConfig”>
<property name=”maxTotal” value=”$redis.maxActive” />
<property name=”maxIdle” value=”$redis.maxIdle” />
<property name=”maxWaitMillis” value=”$redis.maxWait” />
<!– <property name=”testOnBorrow” value=”$redis.testOnBorrow” /> –>
</bean>
<bean id=”jedisConnectionFactory”
class=”org.springframework.data.redis.connection.jedis.JedisConnectionFactory”>
<property name=”usePool” value=”true”></property>
<property name=”hostName” value=”$redis.host” />
<property name=”port” value=”$redis.port” />
<property name=”password” value=”$redis.pass” />
<property name=”timeout” value=”$redis.timeout” />
<!– <property name=”database” value=”$redis.default.db”></property> –>
<constructor-arg index=”0″ ref=”jedisPoolConfig” />
</bean>
<!– Redis Template –>
<bean id=”redisTemplate” class=”org.springframework.data.redis.core.StringRedisTemplate”>
<property name=”connectionFactory” ref=”jedisConnectionFactory” />
<!– 如果不配置Serializer,那么存储的时候智能使用String,如果用User类型存储,那么会提示错误User can’t cast
to String!!! –>
<property name=”keySerializer”>
<bean
class=”org.springframework.data.redis.serializer.StringRedisSerializer” />
</property>
<property name=”valueSerializer”>
<bean
class=”org.springframework.data.redis.serializer.StringRedisSerializer” />
</property>
<property name=”hashValueSerializer”>
<bean
class=”com.datatang.api.commonmodule.common.serializer.GsonSerializer” />
</property>
</bean>
2、java操作redis,只需要加上jedis.auth(passwd)即可
public static Jedis getRedisConnection(String configFlag)
String host;
int port;
Jedis jedis = null;
InputStream is = RedisUtil.class.getClassLoader().getResourceAsStream("config/redis.properties");
Properties pro = new Properties();
try
pro.load(is);
host = pro.getProperty("redis.host" + configFlag);
port = Integer.parseInt(pro.getProperty("redis.port" + configFlag));
jedis = new Jedis(host, port);
String passwd = pro.getProperty("redis.pass");
jedis.auth(passwd);
catch (IOException e)
e.printStackTrace();
finally
try
if(is != null)
is.close();
catch (IOException e)
e.printStackTrace();
return jedis;
参考技术A <!– jedis pool配置 –>
<bean id=”jedisPoolConfig” class=”redis.clients.jedis.JedisPoolConfig”>
<property name=”maxTotal” value=”$redis.maxActive” />
<property name=”maxIdle” value=”$redis.maxIdle” />
<property name=”maxWaitMillis” value=”$redis.maxWait” />
<!– <property name=”testOnBorrow” value=”$redis.testOnBorrow” /> –>
</bean>
<bean id=”jedisConnectionFactory”
class=”org.springframework.data.redis.connection.jedis.JedisConnectionFactory”>
<property name=”usePool” value=”true”></property>
<property name=”hostName” value=”$redis.host” />
<property name=”port” value=”$redis.port” />
<property name=”password” value=”$redis.pass” />
<property name=”timeout” value=”$redis.timeout” />
<!– <property name=”database” value=”$redis.default.db”></property> –>
<constructor-arg index=”0″ ref=”jedisPoolConfig” />
</bean>
<!– Redis Template –>
redis集群配置,spring整合jedis,缓存同步
前台的商品数据(图片等加载缓慢)查询,先从redis缓存查询数据。
redis是一个nosql数据库,内存版数据库,读取速度11w/s。本身具有内存淘汰机制,是单线程服务器(分时操作系统),线程安全。
linux中redis安装(单机版):make;;
修改为后台启动vim redis.conf; ;(单机redis配置密码验证,修改参数 requirepass 密码;后台启动 ./redis.server ../redis.conf;带密码登录 ./redis.cli -a password)
查看进程;
虚拟机模拟redis集群的搭建:
搭建步骤:
vim redis.conf,
复制7001,依次修改其他的端口;
登录集群:
查看节点信息:
主机用于写入,从机用作备份;
存入的数据经过CRC算法指定hash槽,指向磁盘空间位置;
添加redis单机到集群:
添加的都会是master;
重新分配存储空间:
./redis-trib.rb reshard 192.168.74.132:7001 表示重新分配7001所在的集群(注意)
添加从节点:
再给7008分配空间即可;
redis集群融入到业务中:
导包
存储到redis集群中的数据,会随机分配到其中一个redis中;
spring整合jedis:
1 <!-- redis连接池 --> 2 <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> 3 <property name="maxTotal" value="2000"></property> 4 <property name="maxIdle" value="20"></property> 5 </bean> 6 <!-- 创建集群对象 --> 7 <bean class="redis.clients.jedis.JedisCluster"> 8 <constructor-arg name="nodes"> 9 <set> 10 <bean class="redis.clients.jedis.HostAndPort"> 11 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 12 <constructor-arg name="port" value="7001"></constructor-arg> 13 </bean> 14 15 <bean class="redis.clients.jedis.HostAndPort"> 16 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 17 <constructor-arg name="port" value="7002"></constructor-arg> 18 </bean> 19 20 <bean class="redis.clients.jedis.HostAndPort"> 21 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 22 <constructor-arg name="port" value="7003"></constructor-arg> 23 </bean> 24 25 <bean class="redis.clients.jedis.HostAndPort"> 26 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 27 <constructor-arg name="port" value="7004"></constructor-arg> 28 </bean> 29 30 <bean class="redis.clients.jedis.HostAndPort"> 31 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 32 <constructor-arg name="port" value="7005"></constructor-arg> 33 </bean> 34 35 <bean class="redis.clients.jedis.HostAndPort"> 36 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 37 <constructor-arg name="port" value="7006"></constructor-arg> 38 </bean> 39 40 <bean class="redis.clients.jedis.HostAndPort"> 41 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 42 <constructor-arg name="port" value="7007"></constructor-arg> 43 </bean> 44 45 <bean class="redis.clients.jedis.HostAndPort"> 46 <constructor-arg name="host" value="192.168.66.66"></constructor-arg> 47 <constructor-arg name="port" value="7008"></constructor-arg> 48 </bean> 49 </set> 50 </constructor-arg> 51 <constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg> 52 </bean>
通过JedisCluster的方法进行缓存的操作;
获取数据后,添加缓存:
在获取数据库数据前,先从缓存中获取:
1 try { 2 String adJson = jedisDao.hget(INDEX_CACHE, categoryId+""); 3 if(StringUtils.isNotBlank(adJson)){ 4 List<AdItem> adList = JsonUtils.jsonToList(adJson, AdItem.class); 5 return adList; 6 } 7 } catch (Exception e) { 8 e.printStackTrace(); 9 }
缓存同步:
数据添加,修改,删除方法中设置清除缓存:
以上是关于spring整合jedis怎么指定密码的主要内容,如果未能解决你的问题,请参考以下文章