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怎么指定密码的主要内容,如果未能解决你的问题,请参考以下文章

rsdispool线程池怎么配置带有密码的redis

Spring boot 整合 Jedis

Redis客户端之Spring整合Jedis

Redis入门很简单之五Jedis和Spring的整合

spring整合jedis

Redis + Jedis + Spring整合遇到的异常(转)