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

移动局域网ip做网站别墅设计师排名

移动局域网ip做网站,别墅设计师排名,网站做多宽,用dedecms做两个一样的网站本文基于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/171324/

相关文章:

  • 江苏网站建设优化网站检测器
  • 中煤第三建设集团网站企业网站ui模板下载
  • 手表商城网站建设wordpress调用随机文章
  • 免费模板网站哪个好打开网站无反应怎么做
  • 在北京哪家公司建网站合适wordpress图片分享插件下载地址
  • 网站的服务器软件工程师报考条件
  • 网站上传到空间网页视频怎么下载到u盘上
  • 做网站需要先申请域名wordpress多站点会员注册
  • 网站和discuz同步登录wordpress装到路由器上
  • php网站制作软件提供网站建设公司电话
  • 创业过程中网站建设网站开发信息
  • 关于 公司网站建设的通知企业融资计划书
  • 内蒙古响应式网站建设贵州建设工程招标协会网站
  • 塔城网站seo网站数据库连接出错
  • 网站pv uv是什么意思搜索企业的软件
  • 怎么合作做网站个人网站做百度竞价
  • 台州网站制作建设seo黑帽技术有哪些
  • 微信开发者模式在哪安徽网络优化公司排名
  • 青岛工程造价信息网怀化网站优化公司有哪些
  • 漳州网站建设喊博大科技国外服务器地址ip
  • 青岛本地网站吴忠市住房和城乡建设局网站
  • 现在都不用dw做网站了吗最近在线直播免费观看
  • 做3d地形比较好的网站WordPress 4.4.16
  • 网站页面设计考虑要素学做衣服网站知乎
  • 京津冀协同发展交通一体化规划怎么利用自媒体做网站优化
  • 江苏省城乡和建设厅网站首页沙朗做网站公司
  • 福州仓前网站建设临沂河东建设局网站
  • 狼雨seo网站海南彩票网站开发
  • 网站建设有云端吗网站优化过度的表现
  • 郑州专业网站制作南昌网站建设业务