博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM+Jedis初体验
阅读量:5330 次
发布时间:2019-06-14

本文共 3555 字,大约阅读时间需要 11 分钟。

第一次用SSM+Jedis搭建web项目,SSM引用之前随笔:,在这记录一下。

一、redis安装

这里不记录详细过程,只记录大概流程也就是比较重要的步骤。

1、redis推荐安装在Linux系统下,因此紧随潮流,安装虚拟机(VMware)、Linux系统(CentOS)。

2、电脑主系统是Windows因此为了方便,在Windows系统安装SecureCRT来链接Linux系统。

3、下载redis压缩包:

4、安装redis需要gcc环境,因此Linux系统中需要安装gcc环境:yum install gcc-c++

5、解压redis压缩包,安装redis:(命令突然想不起来了,以后有机会在补上吧)

6、安装redis完成后,这时启动redis是属于前端启动,说直白点就是启动后命令窗口就无法操作了(需Ctrl+c退出)。前端启动很不方便,因此需要设置成后端启动:

  • 进入之前解压后redis的文件copy文件(redis.conf)到redis安装路径,(此处截图做个标记)
  • 修改redis.conf文件 daemonize yes(大概在100+行):

  • 最后测试, 注意命令需要携带redis.conf文件(不然它是不会解析redis.conf文件的): ./bin/redis-server  ./redis.conf

二、pom.xml

添加Jedis的jar包,此处记录一下,之前报错的时候搜bug有一点意外收获:jedis包括2.4.1,2.5.1等高版本的JedisPoolConfig没有maxActive属性。

 

1     
2
redis.clients
3
jedis
4
2.9.0
5

 

三、redis.properties

redis配置有好多,我没有仔细查,只是记录一下各位前辈常用的一下配置

1 ########################## 2 ## redis缓存配置 3 ########################## 4 # redis主机IP 5 redis.host=redisIP地址 6 # redis端口 7 redis.port=6379 8 # 链接超时 9 # redis.timeout=200010 # 密码11 # redis.password=root12 # 指定redis数据库13 # redis.database=214 15 ##########################16 ## redis连接池配置17 ##########################18 # 最大连接数19 redis.maxTotal=3020 # 最大空闲连接数21 redis.maxIdle=1022 # 获取链接最大等待毫秒23 redis.maxWaitMillis=100024 # 获取链接时检查有效性25 redis.testOnBorrow=true26 27 # 在空闲时监测有效性28 # redis.testWhileIdle=true29 # 链接耗尽时是否阻塞30 # redis.blockWhenExhausted=true31 # 每次释放链接的最大数目32 # redis.numTestsPerEvictionRun=102433 # 释放链接的扫描间隔(毫秒)34 # redis.timeBetweenEvictionRunsMillis=3000035 # 最小空闲时间36 # redis.minEvictableIdleTimeMillis=180000037 # 链接空闲多久后释放38 # redis.softMinEvictableIdleTimeMillis=10000

四、applicationContext-Redis.xml

第一个项目不要多复杂,能跑起来就可以,所以没有配置过多。

1 
2
5 6
7
8
9
10 11
12
13
14
15
16
17
18
19
20
21
22 23
24
25
26
27
28
29
30
31
32 33 34

五、单元测试

关键代码

1  @Test 2     public void testJedisClient() { 3         // 定义redis连接池 4         JedisPool jedisPool = null; 5         // 定义redis实例 6         Jedis jedis = null; 7         try { 8             // 映射redis配置文件 9             ApplicationContext applicationContext =10                     new ClassPathXmlApplicationContext("classpath:applicationContext-Redis.xml");11             // 获取redis连接池12             jedisPool = (JedisPool) applicationContext.getBean("jedisPool");13             // 获取redis实例14             jedis = jedisPool.getResource();15             // 存值16             jedis.set("name", "rose");17             // 取值18             String name = jedis.get("name");19             // 输出控制台20             System.out.println(name);21         }catch (Exception e){22             e.printStackTrace();23         }finally {24             // 释放资源25             if(jedis != null)26                 jedis.close();27             }28             if(jedisPool != null){29                 jedisPool.close();30             }31         }

六、bug

写程序吗哪有不出bug的,记录一下:

解决方案:

首先这个异常中文的大概意思就是:无法从连接池中获取链接。

仔细一思考感觉不对啊,我才刚启动,怎么可能连接池就没链接呢。 

于是百度,发现触发这个异常似乎有很多种情况,不过都和我的不匹配,不过最后终于凭借10几年的百度经验,还是找到了。

就是需要将redis.conf中的这个配置(protected-mode设为no),protected-mode是redis 3.2 之后加入的新特性,它的大概作用就是禁止公网访问redis cache。

接下来修改一下redis.conf,大概在redis.conf文件100行左右:

OK 成功了,嘿嘿嘿~~~

转载于:https://www.cnblogs.com/duniang/p/9072978.html

你可能感兴趣的文章
题1简化版
查看>>
linux清空日志文件内容 (转)
查看>>
jsp中对jstl一些标签的引用方式
查看>>
100. Same Tree
查看>>
[转]java classLoader 体系结构
查看>>
mkdir命令(转)
查看>>
安卓第十三天笔记-服务(Service)
查看>>
css3学习笔记之背景
查看>>
Servlet接收JSP参数乱码问题解决办法
查看>>
【bzoj5016】[Snoi2017]一个简单的询问 莫队算法
查看>>
[dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)
查看>>
Ajax : load()
查看>>
分布式版本控制系统
查看>>
Java出现OutOfMemoryError
查看>>
可行性报告
查看>>
[预打印]使用vbs给PPT(包括公式)去背景
查看>>
HTML5学习笔记简明版(1):HTML5介绍与语法
查看>>
使用IntelliJ IDEA 配置Maven
查看>>
django基础入门(3)django中模板
查看>>
JAVA数据转换常用方法
查看>>