当前位置: 首页 > news >正文

网站的大量图片存储格式网站建设小程序南宁

网站的大量图片存储格式,网站建设小程序南宁,桂林app开发公司,用wordpress设计html本文基于Springboot,mybatis plus,mysql,redis, Jedis模拟redis缓存实现 目录 1. 添加所需maven依赖 2. 设置数据库及数据表 3. 构建实体类 4. 构建工具类实现 redis 数据库连接池,redis 的读取,写入功…

本文基于Springboot,mybatis plus,mysql,redis, Jedis模拟redis缓存实现

目录

1. 添加所需maven依赖

2. 设置数据库及数据表

3. 构建实体类

4. 构建工具类实现 redis 数据库连接池,redis 的读取,写入功能

5. Redis 缓存实战


1. 添加所需maven依赖

        <!--  web开发模块--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 添加jedis依赖,操作redis--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.6.3</version></dependency><!--  mybatis-plus 依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency><!--  mysql连接驱动--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><!--  lombok模块--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>

2. 设置数据库及数据表

  执行以下 sql 脚本新建表 product 并插入四条数据

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for product
-- ----------------------------
DROP TABLE IF EXISTS `product`;
CREATE TABLE `product`  (`id` int NOT NULL AUTO_INCREMENT,`name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`price` float NULL DEFAULT NULL,`category` int NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of product
-- ----------------------------
INSERT INTO `product` VALUES (1, 'phone', 1899, 10);
INSERT INTO `product` VALUES (2, 'apple', 1899, 20);
INSERT INTO `product` VALUES (3, 'food', 1600, 30);
INSERT INTO `product` VALUES (4, 'rice', 1230, 40);SET FOREIGN_KEY_CHECKS = 1;

3. 构建实体类

  这里使用 lombok 来构建setter,getter,构造方法,toString方法

@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName("product")
public class Product {private Integer id;private String name;private Float price;private Integer category;
}

4. 构建工具类实现 redis 数据库连接池,redis 的读取,写入功能

public class JedisUtil {private static JedisPool jedisPool;static{// 配置连接池JedisPoolConfig config = new JedisPoolConfig();config.setMaxTotal(10);  // 设置最大连接数config.setMaxIdle(5);  // 设置最大空闲连接数config.setBlockWhenExhausted(false);  // 连接耗尽时不阻塞// 创建连接池jedisPool = new JedisPool(config,"localhost",6379);}// 从数据池获取 Jedis 连接public static Jedis getJedisPool(){return jedisPool.getResource();}// 存储商品到 redis---key:(product:id)  field:  valuepublic static long saveToRedis(Product product){Jedis jedis = JedisUtil.getJedisPool();HashMap<String,String> hashMap = new HashMap();hashMap.put("name",product.getName());hashMap.put("price",String.valueOf(product.getPrice()));hashMap.put("category",String.valueOf(product.getCategory()));String key = "product:" + product.getId();long flag = jedis.hset(key, hashMap);// 设置过期时间jedis.expire(key,3600L);jedis.close();return flag;}// 从 redis 读取数据public static Product getProductByRedis(int id){Jedis jedis = JedisUtil.getJedisPool();Product product = null;String key = "product:" + id;if(jedis.exists(key)){String name = jedis.hget(key,"name");String price = jedis.hget(key,"price");String category = jedis.hget(key,"category");product = new Product(id,name,Float.parseFloat(price),Integer.parseInt(category));}jedis.close();return product;}
}

5. Redis 缓存实战

  前端请求路径:http://localhost/getProductById?id=2

  后端新建一个 ProductMapper 接口

@Mapper
public interface ProductMapper {@Select("select * from product")List<Product> getProduct();@Select("select * from product where id=#{id}")Product getProductById(int id);
}

  后端新建一个 ProductController 类

@RestController
public class ProductController {@ResourceProductMapper productMapper;@GetMapping("/product")public List<Product> getProduct(){return productMapper.getProduct();}@GetMapping("/getProductById")public Product getProductById(int id){Product product = null;// 1. 查看 redis 缓存中是否有数据product = JedisUtil.getProductByRedis(id);if(product == null){  // redis 中没有该商品// 2.进 mysql 中查询product = productMapper.getProductById(id);if(product==null){ // mysql 中没有System.out.println("mysql 中未查询到该商品");}else { // mysql 中有System.out.println("mysql查询到该商品: "+product);// 3.返回给前端的同时也要将数据写入到 redis 中long flag = JedisUtil.saveToRedis(product);System.out.println("save flag:"+flag);}}else {  // redis 中有该商品System.out.println("redis查询到该商品: " + product);}return product;}
}

  第一次读取数据时是从 mysql 中读取,当该数据写入 redis 后,读取速度明显加快

http://www.yayakq.cn/news/336677/

相关文章:

  • 西安做网站公司xamokj国外域名注册商排名
  • 网站外链建设书籍丹东制作网站公司
  • ps毕业设计做网站界面godaddy域名买的网站
  • 建设部注册师网站做旅游网站
  • 品牌网站建设 磐石网络的确好微信清粉网站开发
  • 网站品牌建设wordpress 爱范儿主题
  • 南阳市住房和城市建设局网站潍坊建设网站公司电话
  • 太原网站空间微教育云平台网站建设
  • 做网站运营的简历山东软件开发培训机构
  • 网站建设案例简介怎么写哈尔滨网页设计公司
  • 网站打开速度加快怎么做软件工程就业方向和前景
  • 杭州省建设厅网站就业合同模板
  • 罗田网站建设南昌建设局网站查询塔吊证怎么查
  • 怎么自己做导航网站鱼巴适设计师服务平台
  • 商务网站模板上海网站建设公司招聘
  • 前端怎么接私活做网站苏州网站设计网站
  • 网站建设要学会什么软件做网站需求 后期方便优化
  • 外贸网站如何做推广怎么样最好的建站网站
  • 来年做那些网站致富大连金广建设集团
  • 查看域名之前做的网站做一个网站成本大概多少钱
  • 金乡做网站自己做的网站怎么在移动端访问
  • 福建老区建设网站线上推广员
  • 建造免费网站大设计师论坛网页设计
  • jquery做网站浏览量销售管理系统哪种好一点
  • asp+网站开发什么是网络营销中的广告联盟
  • 网站排名下降原因做html网站搜索框教程
  • 网站开发代做道滘仿做网站
  • 有没有做q版头像的网站百度软文推广公司
  • 电商设计素材网站推荐做爰网站名称
  • 网站域名申请程序石家庄市工程建设造价管理站网站