Redis缓存的使用

Posted 念念不忘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis缓存的使用相关的知识,希望对你有一定的参考价值。

首先需要去Redis官网下载Redis的安装包

 

要在eclipse中使用Redis还需要两个jar包,需要的自行查找或者联系我

 

运行Redis需要开启Redis的服务端,也就是下载的安装包中的“redis-server.exe"

运行中如下图表示运行成功

 

此时就可以在项目中使用Jedis进行操作了

 

 1 package com.llh;
 2 
 3 import java.util.HashMap;
 4 import java.util.HashSet;
 5 
 6 import redis.clients.jedis.Jedis;
 7 
 8 public class JedisTest2 {
 9 
10     public void addHashMap(String key, HashMap map) {
11         Jedis redis = new Jedis("127.0.0.1", 6379);// 连接redis
12         redis.hmset(key, map);
13         System.out.println("hashmap set success!");
14     }
15 
16     public HashSet queryHashMapByKey(String key) {
17         Jedis redis = new Jedis("127.0.0.1", 6379);// 连接redis
18         return (HashSet) redis.hkeys(key);
19     }
20 
21     public String queryString(String key) {
22         Jedis redis = new Jedis("127.0.0.1", 6379);// 连接redis
23         return redis.get(key);
24     };
25 
26     public void addString(String key, String value) {
27         Jedis redis = new Jedis("127.0.0.1", 6379);// 连接redis
28         // redis.auth("redis");//验证密码
29         // 系统中所有key:
30         /*
31          * Set keys = redis.keys("*"); Iterator t1=keys.iterator() ;
32          * while(t1.hasNext()){ Object obj1=t1.next(); System.out.println(obj1);
33          * }
34          */
35         // DEL 移除给定的一个或多个key。如果key不存在,则忽略该命令。
36         // redis.del("key");
37         // expire 设置Key的过期时间(以秒为单位)
38         // redis.expire("key", 5);
39         // TTL 返回给定key的剩余生存时间(time to live)(以秒为单位)
40         // redis.ttl("key");
41 
42         // PERSIST key 移除给定key的生存时间。
43         // redis.persist("key");
44 
45         // EXISTS 检查给定key是否存在。
46         boolean flag = redis.exists(key);
47         System.out.println(flag);
48         redis.set(key, value);
49         System.out.println("set " + key + " : " + value + ",success");
50     }
51 
52     public static void main(String[] args) {
53         JedisTest2 t1 = new JedisTest2();
54         // String
55         t1.addString("id", "120120");
56 
57         String value = t1.queryString("id");
58         System.out.println("get id >>>" + value);
59 
60         // HashMap
61         HashMap map = new HashMap();
62         map.put("MapId1", "MapValue1");
63         map.put("MapId2", "MapValue2");
64         map.put("MapId3", "MapValue3");
65         t1.addHashMap("hashmap", map);
66 
67         HashSet list = t1.queryHashMapByKey("hashmap");
68         System.out.println(String.format("keys: %s", list));
69     }
70 }

以下备用一个连接池的配置文件

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
 4     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 7     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
 8     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
 9     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
10     <!-- 连接池配置 -->
11     <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
12         <!-- 最大连接数 -->
13         <property name="maxTotal" value="30" />
14         <!-- 最大空闲连接数 -->
15         <property name="maxIdle" value="10" />
16         <!-- 每次释放连接的最大数目 -->
17         <property name="numTestsPerEvictionRun" value="1024" />
18         <!-- 释放连接的扫描间隔(毫秒) -->
19         <property name="timeBetweenEvictionRunsMillis" value="30000" />
20         <!-- 连接最小空闲时间 -->
21         <property name="minEvictableIdleTimeMillis" value="1800000" />
22         <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
23         <property name="softMinEvictableIdleTimeMillis" value="10000" />
24         <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
25         <property name="maxWaitMillis" value="1500" />
26         <!-- 在获取连接的时候检查有效性, 默认false -->
27         <property name="testOnBorrow" value="true" />
28         <!-- 在空闲时检查有效性, 默认false -->
29         <property name="testWhileIdle" value="true" />
30         <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
31         <property name="blockWhenExhausted" value="false" />
32     </bean>  
33     <!-- jedis客户端单机版 -->
34     <bean id="redisClient" class="redis.clients.jedis.JedisPool">
35         <constructor-arg name="host" value="127.0.0.1"></constructor-arg>
36         <constructor-arg name="port" value="6379"></constructor-arg>
37         <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
38     </bean>
39     <bean id="jedisClient" class="com.llh.dao.JedisClientDaoImpl"/>
40      
41     <!-- jedis集群版配置 -->
42     <!-- <bean id="redisClient" class="redis.clients.jedis.JedisCluster">
43         <constructor-arg name="nodes">
44             <set>
45                 <bean class="redis.clients.jedis.HostAndPort">
46                     <constructor-arg name="host" value="192.168.25.153"></constructor-arg>
47                     <constructor-arg name="port" value="7001"></constructor-arg>
48                 </bean>
49                 <bean class="redis.clients.jedis.HostAndPort">
50                     <constructor-arg name="host" value="192.168.25.153"></constructor-arg>
51                     <constructor-arg name="port" value="7002"></constructor-arg>
52                 </bean>
53                 <bean class="redis.clients.jedis.HostAndPort">
54                     <constructor-arg name="host" value="192.168.25.153"></constructor-arg>
55                     <constructor-arg name="port" value="7003"></constructor-arg>
56                 </bean>
57                 <bean class="redis.clients.jedis.HostAndPort">
58                     <constructor-arg name="host" value="192.168.25.153"></constructor-arg>
59                     <constructor-arg name="port" value="7004"></constructor-arg>
60                 </bean>
61                 <bean class="redis.clients.jedis.HostAndPort">
62                     <constructor-arg name="host" value="192.168.25.153"></constructor-arg>
63                     <constructor-arg name="port" value="7005"></constructor-arg>
64                 </bean>
65                 <bean class="redis.clients.jedis.HostAndPort">
66                     <constructor-arg name="host" value="192.168.25.153"></constructor-arg>
67                     <constructor-arg name="port" value="7006"></constructor-arg>
68                 </bean>
69             </set>
70         </constructor-arg>
71         <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
72     </bean>
73     <bean id="jedisClientCluster" class="com.taotao.rest.dao.impl.JedisClientCluster"></bean> -->
74 </beans>

 

项目中使用Redis缓存见后期博客。

 

以上是关于Redis缓存的使用的主要内容,如果未能解决你的问题,请参考以下文章

怎样使用redis缓存,java代码

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

Redis缓存击穿,缓存穿透,缓存雪崩解决方案(附代码)

Redis缓存击穿,缓存穿透,缓存雪崩解决方案(附代码)

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题