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

如何做滴滴网站平台在西安建设工程交易中心网站

如何做滴滴网站平台,在西安建设工程交易中心网站,四川平台网站建设方案,成立一个做网站的公司成本1. Redis入门 1.1 Redis简介 Redis 是一个基于内存的 key-value 结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。 官网#xff1a; https://redis.io 中文网#xff1a; https://www.redis.net.cn/ 主要特点#xff1a; 基于内存存储#xff0c;读写性能高…1. Redis入门 1.1 Redis简介 Redis 是一个基于内存的 key-value 结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。 官网 https://redis.io 中文网 https://www.redis.net.cn/ 主要特点 基于内存存储读写性能高适合存储热点数据热点商品、资讯、新闻企业应用广泛 Redis 是用C语言开发的一个开源的高性能键值对(key-value)数据库官方提供的数据是可以达到 100000 的 QPS每秒内查询次数。它存储的 value 类型比较丰富也被称为结构化的 NoSql 数据库。 NoSqlNot Only SQL不仅仅是SQL泛指非关系型数据库。NoSql数据库并不是要取代关系型数据库而是关系型数据库的补充。 关系型数据库(RDBMS) MysqlOracleDB2SQLServer 非关系型数据库(NoSql) RedisMongo dbMemCached 1.2 Redis下载与安装 1.2.1 Redis 下载 Redis 安装包分为 windows 版和 Linux 版 Windows版下载地址https://github.com/microsoftarchive/redis/releasesLinux版下载地址 https://download.redis.io/releases/ 资料中已提供好的安装包 1.2.2 Redis 安装 在 Windows 中安装 Redis (项目中使用) Redis 的 Windows 版属于绿色软件直接解压即可使用解压后目录结构如下 1.3 Redis服务启动与停止 1.3.1 服务启动命令 服务启动命令 redis-server.exe redis.windows.conf Redis 服务默认端口号为 6379 通过快捷键 Ctrl C 即可停止 Redis 服务 1.3.2 客户端连接命令 客户端连接命令 redis-cli.exe 通过 redis-cli.exe 命令默认连接的是本地的 redis 服务并且使用默认 6379 端口。也可以通过指定如下参数连接 -h ip地址-p 端口号-a 密码如果需要 1.3.3 修改 Redis 配置文件 设置 Redis 服务密码修改 redis.windows.conf requirepass 123456 注意 修改密码后需要重启 Redis 服务才能生效Redis 配置文件中 # 表示注释 1.3.4 Redis客户端图形工具 默认提供的客户端连接工具界面不太友好同时操作也较为麻烦接下来引入一个Redis客户端图形工具。 新建连接 2. Redis数据类型 2.1 五种常用数据类型介绍 Redis 存储的是 key-value 结构的数据其中 key 是字符串类型value 有5种常用的数据类型 字符串 string哈希 hash列表 list集合 set有序集合 sorted set / zset 2.2 各种数据类型特点 解释说明 字符串(string)普通字符串Redis中最简单的数据类型哈希(hash)也叫散列类似于Java中的HashMap结构列表(list)按照插入顺序排序可以有重复元素类似于Java中的LinkedList集合(set)无序集合没有重复元素类似于Java中的HashSet有序集合(sorted set/zset)集合中每个元素关联一个分数(score)根据分数升序排序没有重复元素 3. Redis常用命令 3.1 字符串操作命令 Redis 字符串类型常用命令 SET key value 设置指定key的值GET key 获取指定key的值SETEX key seconds value 设置指定key的值并将 key 的过期时间设为 seconds 秒SETNX key value 只有在 key 不存在时设置 key 的值 更多命令可以参考Redis中文网https://www.redis.net.cn 3.2 哈希操作命令 Redis hash 是一个string类型的 field 和 value 的映射表hash特别适合用于存储对象常用命令 HSET key field value 将哈希表 key 中的字段 field 的值设为 valueHGET key field 获取存储在哈希表中指定字段的值HDEL key field 删除存储在哈希表中的指定字段HKEYS key 获取哈希表中所有字段HVALS key 获取哈希表中所有值 3.3 列表操作命令 Redis 列表是简单的字符串列表按照插入顺序排序常用命令 LPUSH key value1 [value2] 将一个或多个值插入到列表头部LRANGE key start stop 获取列表指定范围内的元素RPOP key 移除并获取列表最后一个元素LLEN key 获取列表长度BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素 如果列表没有元素会阻塞列表直到等待超 时或发现可弹出元素为止 3.4 集合操作命令 Redis set 是string类型的无序集合。集合成员是唯一的这就意味着集合中不能出现重复的数据常用命令 SADD key member1 [member2] 向集合添加一个或多个成员SMEMBERS key 返回集合中的所有成员SCARD key 获取集合的成员数SINTER key1 [key2] 返回给定所有集合的交集SUNION key1 [key2] 返回所有给定集合的并集SREM key member1 [member2] 移除集合中一个或多个成员 3.5 有序集合操作命令 Redis有序集合是string类型元素的集合且不允许有重复成员。每个元素都会关联一个double类型的分数。常用命令 常用命令 ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间内的成员ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 incrementZREM key member [member …] 移除有序集合中的一个或多个成员 3.6 通用命令 Redis的通用命令是不分数据类型的都可以使用的命令 KEYS pattern 查找所有符合给定模式( pattern)的 keyEXISTS key 检查给定 key 是否存在TYPE key 返回 key 所储存的值的类型DEL key 该命令用于在 key 存在是删除 key 4.在 Java 中操作 Redis 4.1 Redis的Java客户端 Redis 的 Java 客户端很多常用的几种 JedisLettuceSpring Data Redis Spring 对 Redis 客户端进行了整合提供了 Spring Data Redis在Spring Boot项目中还提供了对应的Starter即 spring-boot-starter-data-redis。 4.2 Spring Data Redis 使用方式 操作步骤 导入Spring Data Redis 的maven坐标配置Redis数据源编写配置类创建RedisTemplate对象通过RedisTemplate对象操作Redis 解释说明 database指定使用Redis的哪个数据库Redis服务启动后默认有16个数据库编号分别是从0到15。 解释说明 当前配置类不是必须的因为 Spring Boot 框架会自动装配 RedisTemplate 对象但是默认的 key 序列化器为 JdkSerializationRedisSerializer导致我们存到 Redis 中后的数据和原始数据有差别故设置为 StringRedisSerializer 序列化器。 通过RedisTemplate对象操作Redis package com.sky.test;import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.*;SpringBootTest public class SpringDataRedisTest {Autowiredprivate RedisTemplate redisTemplate;Testpublic void testRedisTemplate(){System.out.println(redisTemplate);//string数据操作ValueOperations valueOperations redisTemplate.opsForValue();//hash类型的数据操作HashOperations hashOperations redisTemplate.opsForHash();//list类型的数据操作ListOperations listOperations redisTemplate.opsForList();//set类型数据操作SetOperations setOperations redisTemplate.opsForSet();//zset类型数据操作ZSetOperations zSetOperations redisTemplate.opsForZSet();} }4.3 操作常见类型数据 1). 操作字符串类型数据 /*** 操作字符串类型的数据*/Testpublic void testString(){// set get setex setnxredisTemplate.opsForValue().set(name,小明);String city (String) redisTemplate.opsForValue().get(name);System.out.println(city);redisTemplate.opsForValue().set(code,1234,3, TimeUnit.MINUTES);redisTemplate.opsForValue().setIfAbsent(lock,1);redisTemplate.opsForValue().setIfAbsent(lock,2);}2). 操作哈希类型数据 /*** 操作哈希类型的数据*/Testpublic void testHash(){//hset hget hdel hkeys hvalsHashOperations hashOperations redisTemplate.opsForHash();hashOperations.put(100,name,tom);hashOperations.put(100,age,20);String name (String) hashOperations.get(100, name);System.out.println(name);Set keys hashOperations.keys(100);System.out.println(keys);List values hashOperations.values(100);System.out.println(values);hashOperations.delete(100,age);}3). 操作列表类型数据 /*** 操作列表类型的数据*/Testpublic void testList(){//lpush lrange rpop llenListOperations listOperations redisTemplate.opsForList();listOperations.leftPushAll(mylist,a,b,c);listOperations.leftPush(mylist,d);List mylist listOperations.range(mylist, 0, -1);System.out.println(mylist);listOperations.rightPop(mylist);Long size listOperations.size(mylist);System.out.println(size);}4). 操作集合类型数据 /*** 操作集合类型的数据*/Testpublic void testSet(){//sadd smembers scard sinter sunion sremSetOperations setOperations redisTemplate.opsForSet();setOperations.add(set1,a,b,c,d);setOperations.add(set2,a,b,x,y);Set members setOperations.members(set1);System.out.println(members);Long size setOperations.size(set1);System.out.println(size);Set intersect setOperations.intersect(set1, set2);System.out.println(intersect);Set union setOperations.union(set1, set2);System.out.println(union);setOperations.remove(set1,a,b);}5). 操作有序集合类型数据 /*** 操作有序集合类型的数据*/Testpublic void testZset(){//zadd zrange zincrby zremZSetOperations zSetOperations redisTemplate.opsForZSet();zSetOperations.add(zset1,a,10);zSetOperations.add(zset1,b,12);zSetOperations.add(zset1,c,9);Set zset1 zSetOperations.range(zset1, 0, -1);System.out.println(zset1);zSetOperations.incrementScore(zset1,c,10);zSetOperations.remove(zset1,a,b);}6). 通用命令操作 /*** 通用命令操作*/Testpublic void testCommon(){//keys exists type delSet keys redisTemplate.keys(*);System.out.println(keys);Boolean name redisTemplate.hasKey(name);Boolean set1 redisTemplate.hasKey(set1);for (Object key : keys) {DataType type redisTemplate.type(key);System.out.println(type.name());}redisTemplate.delete(mylist);}5. 店铺营业状态设置 5.1 需求分析和设计 接口设计 设置营业状态管理端查询营业状态用户端查询营业状态 本项目约定 管理端 发出的请求统一使用 /admin 作为前缀用户端 发出的请求统一使用 /user 作为前缀 营业状态数据存储方式基于Redis的字符串来进行存储 5.2 代码开发 5.2.1 设置营业状态 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();} }5.2.2 管理端查询营业状态 /*** 获取店铺的营业状态* return*/GetMapping(/status)ApiOperation(获取店铺的营业状态)public ResultInteger getStatus(){Integer status (Integer) redisTemplate.opsForValue().get(KEY);log.info(获取到店铺的营业状态为{},status 1 ? 营业中 : 打烊中);return Result.success(status);}5.2.3 用户端查询营业状态 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);} }5.3 功能测试 5.3.1 接口分组展示 接下来我们要实现管理端和用户端接口进行区分。 在 WebMvcConfiguration.java 中分别扫描 “com.sky.controller.admin” 和 “com.sky.controller.user” 这两个包。 Beanpublic Docket docket1(){log.info(准备生成接口文档...);ApiInfo apiInfo new ApiInfoBuilder().title(苍穹外卖项目接口文档).version(2.0).description(苍穹外卖项目接口文档).build();Docket docket new Docket(DocumentationType.SWAGGER_2).groupName(管理端接口).apiInfo(apiInfo).select()//指定生成接口需要扫描的包.apis(RequestHandlerSelectors.basePackage(com.sky.controller.admin)).paths(PathSelectors.any()).build();return docket;}Beanpublic Docket docket2(){log.info(准备生成接口文档...);ApiInfo apiInfo new ApiInfoBuilder().title(苍穹外卖项目接口文档).version(2.0).description(苍穹外卖项目接口文档).build();Docket docket new Docket(DocumentationType.SWAGGER_2).groupName(用户端接口).apiInfo(apiInfo).select()//指定生成接口需要扫描的包.apis(RequestHandlerSelectors.basePackage(com.sky.controller.user)).paths(PathSelectors.any()).build();return docket;}
http://www.w-s-a.com/news/52359/

相关文章:

  • 毕设做桌面端还是网站sns社交网站 建设
  • 建设一个网站需要注意哪些内容wordpress 进销存
  • 沈阳市建设局网站sem优化师是什么意思
  • 餐饮vi设计公司网站排名优化方法讲解
  • 无线昆明官方网站可以做书的网站
  • 信誉最好的20个网投网站凡科网站建设之后怎么删除
  • 天津网站开发技术广州网站优化公司排名
  • 养老做增减的网站医院网站怎么做优化排名
  • 企业网站的推广方法有哪些上海猎头公司前十名
  • 电商网站建设建议免费下载app
  • 网站搭建设计是什么意思百度地图放到网站上
  • 东莞网站建设市场分析淘宝网站框架
  • 新网站多久被百度收录网站空间单位
  • 2017常用的网站昆明网站代理
  • 成都海鸥手表网站安阳网站建设策划
  • 做好的网站怎么发布做网站应该做哪方面的
  • 可以找厂家的网站品牌创意型网站开发
  • 有没有做牛羊角的网站电商网站报价
  • 网站建设行业咨讯文章网站兼容模式怎么设置
  • 商务网站建设概念东莞做网站的公司吗
  • 高稳定性的网站设计制作wordpress 检测插件
  • 无锡网站制作排名自适应网站建设推荐
  • 度娘网站桃花怎么做网站制作 p
  • 小欢喜林磊儿什么网站做家教搜索优化公司
  • 龙岗做网站哪里找网站建设简介是什么意思
  • 做网站的标准北京西站出站口
  • asp.net新建网站市场营销管理是做什么的
  • 南昌网站建设模板服务商建设什么网站挣钱
  • 网站建设实训记录企业网站建设运营
  • 视频网站文案住房和城乡建设部门