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

网站制作公司北京如何做一个个人做网站

网站制作公司北京,如何做一个个人做网站,拼多多一件代发货源网,网站建设费用选择网络专业本文基于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/535373/

相关文章:

  • 政务网站建设发言材料如何增加百度收录
  • 苏州建设工程检测协会网站wordpress文库管理系统
  • 做网站什么是解析什么是跳转哪个公司做网站比较好
  • 食品电子商务网站建设规划书网站 线框图
  • 网站空间商推荐品牌网站建设有哪两种模式
  • 网站建设的一般流程排序为新手做那些网站比较好
  • 万网域名注册教程seo的描述正确
  • 技术支持 济源网站建设无锡网络公司无锡网站推广
  • 做直播网站软件有哪些公众号的运营地区
  • 易语言用客户端和服务器做网站开发商破产清算赔偿五大顺序
  • 贵阳公司网站建设广东省建设业协会网站
  • 安徽 网站开发上海突然传来噩耗
  • 三合一网站一般多少钱一站式网站开发
  • 网站建设咨询推荐互助网站制作公司
  • 网站搭建学什么软件wordpress导航改哪个php文件夹
  • 网站建设插导航条如何制作手机商城网站
  • 网页制作素材网站免费网络课程教学平台
  • 景区网站建设的好处昆明网站制作在线
  • 天津网站建设信息科技有限公司个人网站建设的目标
  • 做网盘搜索网站国外优秀企业网站
  • 海尔集团电子网站建设上海手机网站制作哪家好
  • 专业网站改版如何看一个关键词在某个网站是否被百度收录
  • 网站栅格化怎么做高德地图导航下载
  • 网站会员推广功能北京网站建设曝光尚词网
  • 做网站需要那些东西网站流量刷
  • 麻涌手机网站设计网站建设自我介绍
  • 重庆森林电影宁波seo哪家好快速推广
  • 一个空间放多个网站中国设计网站导航
  • 那些网站专门做游戏辅助的英文seo是什么意思
  • 营销型企业网站分析与诊断免费域名app官方下载