1.准备事项
需求简要:在index.html中添加一个下拉列表,显示省份信息。当页面加载完成后,发送ajax请求,从服务器端获取数据回显到页面。在服务器端使用Redis缓存优化(在服务器接收到客户端的请求后,会先去缓存中找数据如果缓存中有该数据,则直接响应给客户端,不会使用数据库的资源。如果缓存中没有该数据,则再去使用数据库的资源去找数据并将该数据存储在缓存中以供下次使用)。
参考文档:
(1)非关系型数据库Redis的入门学习。https://blog.csdn.net/q961250375/article/details/102680405
(2)Jedis学习,一款Java操作Redis数据库的工具。https://blog.csdn.net/q961250375/article/details/102688899
案例源码下载【百度网盘mnlq】。
2.案例实现
2.1.创建数据库
CREATE DATABASE demo CHARACTER SET utf8 COLLATE utf8_general_ci;
USE demo;
CREATE TABLE province(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL
)CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 插入数据
INSERT INTO province VALUES(NULL,"北京");
INSERT INTO province VALUES(NULL,'上海');
INSERT INTO province VALUES(NULL,'广州');
INSERT INTO province VALUES(NULL,'深圳');
INSERT INTO province VALUES(NULL,'湖北');
2.2.项目结构及相关Jar包
2.3.项目具体代码
(1)数据库连接池配置文件:druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///demo
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000
(2)Redis连接池配置文件:jedis.properties
host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10
(3)JDBC工具类:JDBCUtils
package com.atlantis.util;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* JedisPoolUtils
* 记载配置文件,配置连接池参数,提供获取连接的方法
*/
public class JedisPoolUtils {
private static JedisPool jedisPool;
static {
// 读取jedis.properties配置文件
InputStream inputStream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
// 创建Properties对象
Properties properties = new Properties();
// 关联配置文件
try {
properties.load(inputStream);
} catch