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

河北涞水建设厅官方网站重庆网站设计工作室

河北涞水建设厅官方网站,重庆网站设计工作室,龙岗网络科技有限公司,股票交易网站建设概述 在我们日常的Java Web开发中#xff0c;无不都是使用数据库来进行数据的存储#xff0c;由于一般的系统任务中通常不会存在高并发的情况#xff0c;所以这样看起来并没有什么问题#xff0c;可是一旦涉及大数据量的需求#xff0c;比如一些商品抢购的情景#xff0…概述 在我们日常的Java Web开发中无不都是使用数据库来进行数据的存储由于一般的系统任务中通常不会存在高并发的情况所以这样看起来并没有什么问题可是一旦涉及大数据量的需求比如一些商品抢购的情景或者是主页访问量瞬间较大的时候单一使用数据库来保存数据的系统会因为面向磁盘磁盘读/写速度比较慢的问题而存在严重的性能弊端一瞬间成千上万的请求到来需要系统在极短的时间内完成成千上万次的读/写操作这个时候往往不是数据库能够承受的极其容易造成数据库系统瘫痪最终导致服务宕机的严重生产问题 安装redis redis是key-value属性的数据库; NOSQL数据库非关系型的; 关系型数据库 msql oracle db2 sqlServer 非关系型数据库 redis mongo db memcached 主要的特点 基于内存存储读写性能高适合存储热点数据热点商品、资讯、新闻 //秒杀系统大量的用户访问该数据企业应用广泛 Redis安装 Redis安装包分为windows版和Linux版 Windows版下载地址https://github.com/microsoftarchive/redis/releasesLinux版下载地址 https://download.redis.io/releases/ redis.windows.conf 配置文件 redis-cli.exe Redis 客户端 redis-server.exe Redis服务端 易错点 启动服务端是需要设置指定的配置文件不然就是默认的配置文件 需要先启动redis的服务端然后再启动客户端服务。 默认的端口号是6379; 通过redis-cli.exe命令默认连接的是本地的redis服务并且使用默认6379端口。也可以通过指定如下参数连接 -h ip地址-p 端口号-a 密码如果需要 简化redis操作使用客户端界面 图形界面操作redis Redis中的数据类型 五种最常用的数据类型 字符串 string 哈希 hash 列表 list 集合 set 有序集合 sorted set 字符串(string)普通字符串Redis中最简单的数据类型哈希(hash)也叫散列类似于Java中的HashMap结构列表(list)按照插入顺序排序可以有重复元素类似于Java中的LinkedList集合(set)无序集合没有重复元素类似于Java中的HashSet计算交集并集和差集有序集合(sorted set/zset)集合中每个元素关联一个分数(score)根据分数升序排序没有重复元素视频播放排行榜等 Redis中的命令 字符串常用的操作 set key value 设置指定key的值 get key 获取指定key setex key seconds value //短信验证码使用redis设置多长时间过期 设置指定key的值并将 key 的过期时间设为 seconds 秒 SETNX key value 只有在 key 不存在时设置 key 的值 哈希表的操作 Redis hash 是一个string类型的 field 和 value 的映射表hash特别适合用于存储对象常用命令 HSET key field value 将哈希表 key 中的字段 field 的值设为 valueHGET key field 获取存储在哈希表中指定字段的值HDEL key field 删除存储在哈希表中的指定字段HKEYS key 获取哈希表中所有字段HVALS key 获取哈希表中所有值 在操作前面多了一个H代表哈希表key是表面 field是字段名 value是对应的值 列表操作 Redis 列表是简单的字符串列表按照插入顺序排序常用命令 LPUSH key value1 [value2] 将一个或多个值插入到列表头部LRANGE key start stop 获取列表指定范围内的元素RPOP key 移除并获取列表最后一个元素LLEN key 获取列表长度BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素 如果列表没有元素会阻塞列表直到等待超 时或发现可弹出元素为止 集合操作 Redis set 是string类型的无序集合。集合成员是唯一的这就意味着集合中不能出现重复的数据常用命令 SADD key member1 [member2] 向集合添加一个或多个成员SMEMBERS key 返回集合中的所有成员SCARD key 获取集合的成员数SINTER key1 [key2] 返回给定所有集合的交集SUNION key1 [key2] 返回所有给定集合的并集SREM key member1 [member2] 移除集合中一个或多个成员 有序集合操作 视频播放排行榜 Redis有序集合是string类型元素的集合且不允许有重复成员。每个元素都会关联一个double类型的分数。常用命令 常用命令 ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间内的成员ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 incrementZREM key member [member …] 移除有序集合中的一个或多个成员 通用命令 Redis的通用命令是不分数据类型的都可以使用的命令 KEYS pattern 查找所有符合给定模式( pattern)的 key//可以使用正则表达式EXISTS key 检查给定 key 是否存在TYPE key 返回 key 所储存的值的类型DEL key 该命令用于在 key 存在是删除 key java中操作redis Spring 对 Redis 客户端进行了整合提供了 Spring Data Redis在Spring Boot项目中还提供了对应的Starter即 spring-boot-starter-data-redis。 导入spring redis maven坐标 dependency groupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencyspring:profiles:active: devredis:host: ${sky.redis.host}port: ${sky.redis.port}password: ${sky.redis.password}database: ${sky.redis.database}配置对应的配置类 package com.sky.config;​import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.StringRedisSerializer;​ConfigurationSlf4jpublic class RedisConfiguration {​ Bean public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ log.info(开始创建redis模板对象...); RedisTemplate redisTemplate new RedisTemplate(); //设置redis的连接工厂对象 redisTemplate.setConnectionFactory(redisConnectionFactory); //设置redis key的序列化器 redisTemplate.setKeySerializer(new StringRedisSerializer()); return redisTemplate; }}编写对应的配置类 最后总结 redis应用的场景 1、排行榜 2、计数器应用 3、Pub/Sub构建实时消息系统 4、构建队列系统 5、缓存 外面店铺的状态改变操作 package com.sky.controller.admin;import com.sky.result.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController(adminShopController) RequestMapping(/admin/shop) Api(tags 店铺相关接口) Slf4j public class ShopController {public static final String KEY SHOP_STATUS;Autowiredprivate RedisTemplate redisTemplate;/*** 设置店铺的营业状态* param status* return*/PutMapping(/{status})ApiOperation(设置店铺的营业状态)public Result setStatus(PathVariable Integer status){log.info(设置店铺的营业状态为{},status 1 ? 营业中 : 打烊中);redisTemplate.opsForValue().set(KEY,status);return Result.success();} }/*** 获取店铺的营业状态* return*/GetMapping(/status)ApiOperation(获取店铺的营业状态)public ResultInteger getStatus(){Integer status (Integer) redisTemplate.opsForValue().get(KEY);log.info(获取到店铺的营业状态为{},status 1 ? 营业中 : 打烊中);return Result.success(status);}package com.sky.controller.user;import com.sky.result.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*;RestController(userShopController) //用户获得餐厅是否打样的情况 RequestMapping(/user/shop) Api(tags 店铺相关接口) Slf4j public class ShopController {public static final String KEY SHOP_STATUS;Autowiredprivate RedisTemplate redisTemplate;/*** 获取店铺的营业状态* return*/GetMapping(/status)ApiOperation(获取店铺的营业状态)public ResultInteger getStatus(){Integer status (Integer) redisTemplate.opsForValue().get(KEY);log.info(获取到店铺的营业状态为{},status 1 ? 营业中 : 打烊中);return Result.success(status);} }员工分页查询 采用dto接收传进来的参数然后采用PageResult封装传给前端的数据一个是对应的条数一个是list集合封装数据 Controller代码 GetMapping(/page) //设置路径返回是Result封装PageResult的数据包含记录条数和对应集合的数据ApiOperation(员工分页查询)public ResultPageResult page(EmployeePageQueryDTO employeePageQueryDTO) { //接收传进来的数据log.info(员工分页查询参数为{}, employeePageQueryDTO);PageResult pageResult employeeService.pageQuery(employeePageQueryDTO);//后续定义return Result.success(pageResult); //将result对象返回其中有多少条记录和记录对应的集合数}serive层 public PageResult pageQuery(CategoryPageQueryDTO categoryPageQueryDTO) {PageHelper.startPage(categoryPageQueryDTO.getPage(),categoryPageQueryDTO.getPageSize());//下一条sql进行分页自动加入limit关键字分页PageCategory page categoryMapper.pageQuery(categoryPageQueryDTO);return new PageResult(page.getTotal(), page.getResult());}使用到了一个mybaits的工具分页查询插件 startPage 开始进行分页查询 select idpageQuery resultTypecom.sky.entity.Employeeselect * from employeewhereif testname ! null and name ! and name like concat(%,#{name},%)/if/whereorder by create_time desc/select封装修改类修改可能有很多种直接将修改的sql语句封装成类 比如说需要修改状态或者修改员工的信息传入的都是employer 采用动态的sql语句进行拼接 update idupdate parameterTypeCategoryupdate categorysetif testtype ! nulltype #{type},/ifif testname ! nullname #{name},/ifif testsort ! nullsort #{sort},/ifif teststatus ! nullstatus #{status},/ifif testupdateTime ! nullupdate_time #{updateTime},/ifif testupdateUser ! nullupdate_user #{updateUser}/if/setwhere id #{id} //根据id查询/update在框架种快速生成对象的使用builder注解进行开发 Builder public class Card{private int id;private String name;private boolean sex; }public class AppTest {public static void main(String[] args) {// 代替了 set方法Card card Card.builder().name(jack).sex(男).build();} }这样就可以快速的构建对象;
http://www.hkea.cn/news/14573933/

相关文章:

  • 厚街网站建设报价百度竞价怎么做开户需要多少钱
  • 网站 谁建设谁负责怎么自己建立网站
  • 懒人手机网站合肥瑶海区小学排名
  • 建站公司的服务器常州市新北区城乡建设局网站
  • 苏州专业网站建设的公司做导购型网站
  • 绥化市网站建设对外网站建设情况汇报
  • 下载app 的网站 如何做python做网站挣钱
  • 东莞网站建设企业vs做网站怎么上
  • 运城盐湖区姚孟信通网站开发中心wordpress 仿煎蛋主题 无聊图
  • 手机网站开发需要哪些人传动设备 技术支持 东莞网站建设
  • 用外链技术做视频网站ps网站主页按钮怎么做
  • 网站建设所需服务器费用企业融资数据在哪查
  • 黑色背景的网站开发工具腾讯企业邮箱网址
  • 衡水网站建设公司联系电话济南的互联网公司
  • 设计网站公司湖南岚鸿公司音乐制作软件哪个好
  • 有关做橡胶品的网站杭州营销策划有限公司
  • 高水平的大连网站建设wordpress手机号登陆
  • 厦门建设网站的自己创网站
  • 网站结构的类型做家居商城网站
  • 淘客怎么用网站做怎样自学设计室内装修效果图
  • 手机网站 百度推广网贷代理推广
  • 怎么做网站赚钱徐州招聘网站哪个好
  • 深圳市宝安区做网站建设的企业wordpress代码编写
  • 室内设计网站大全免费成都航空公司官方网站
  • 全面的郑州网站建设网站设计网页版
  • 网站没排名的原因最新一轮阳性症状
  • 网站开发基于百度地图漳州微网站建设哪家好
  • 音乐门户网站模板网络营销核心要素
  • 福田网站建设费用明细广州开发区第一小学
  • 辽宁建设厅证件查询网站wordpress禁止右键