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

公司企业网站源码免费企业网站php源码

公司企业网站源码,免费企业网站php源码,百度竞价排名又叫,鹤岗网站seo目录 四、 Spring Data Redis 五、 Spring Data ElasticSearch 四、 Spring Data Redis Redis 是一个基于内存的数据结构存储系统#xff0c;它可以用作数据库或者缓存。它支持多种 类型的数据结构#xff0c;这些数据结构类型分别为 String#xff08;字符串#xff09… 目录 四、 Spring Data Redis 五、 Spring Data ElasticSearch 四、 Spring Data Redis Redis 是一个基于内存的数据结构存储系统它可以用作数据库或者缓存。它支持多种 类型的数据结构这些数据结构类型分别为 String字符串、List列表、Set集合、 Hash散列和 Zset有序集合。 Spring Data Redis 通过一段简单的配置即可让 JAVA 程序访问 redis 服务它的底层 是对 redis 开发包(如 Jedis、JedisPool)的高度封装。 1 Spring Data Redis 项目搭建 1. 安装 redis 2. 安装 RedisDesktopManager 3. 创建 SpringBoot 项目创建时加入 Spring Data Redis 起步依赖。 4. 写配置文件 spring:redis:# Redis 服务器主机。host: localhost# Redis 服务器端口。port: 6379jedis:pool:# 连接池在给定时间可以分配的最大连接数。max-active: 8# 连接池中空闲连接的最大数量。max-idle: 8# 连接池中空闲连接的最小数量。min-idle: 0 5. 测试 // 注对象名必须叫 redisTemplate否则由于容器中有多个 RedisTemplate 类型对象造成无法注入 Autowired private RedisTemplate redisTemplate; Test public void t1() {//获取操作 string 数据的工具ValueOperations operations redisTemplate.opsForValue();operations.set(name,tong); // 存Object name operations.get(name); // 取System.out.println(name); }2 序列化器 在入门案例中我们看到 Spring Data Redis 存入 Redis 的是一串二进制数据这是因为 Spring Data Redis 在保存数据的时候底层有一个序列化器在工作它会将要保存的数据键和值按照一定的规则进行序列化操作后再进行存储。spring-data-redis 提供如 下几种序列化器 JdkSerializationRedisSerializer: 默认序列化为二进制数据 StringRedisSerializer: 简单的序列化为字符串 GenericToStringSerializer: 可以将任何对象序列化为字符串 Jackson2JsonRedisSerializer: 序列化对象为 json 字符串 GenericJackson2JsonRedisSerializer:功能同上,但是更容易反序列化 OxmSerializer: 序列化对象为 xml 如果想改变使用的序列化器可以通过 redisTemplate 对象设置。 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new StringRedisSerializer()); 3 Spring Data Redis 操作 string 在 Redis 中有五种常见类型Spring Data Redis 对每一种数据类型都提供了一 个 xxxOperations的工具类分别是:  ValueOperations用来操作 string 类型数据  HashOperations: 用来操作 hash 类型数据  ListOperations用来操作 list 类型数据  SetOperations用来操作 set 类型数  ZSetOperations用来操作 zset RedisTemplate 常用方法  delete(K key)删除键值对  delete(Collection keys)批量删除 ValueOperations 的常用方法  void set(K key, V value)设置键值对  void set(K key, V value, long timeout, TimeUnit unit)设置有时效的键值对  void multiSet(Map map)批量设置键值对  V get(Object key)获取值  List multiGet(Collection keys)批量获取值  Long size(K key)获取值的长度  Long increment(K key)数字类型值自增  Long increment(K key, long delta)数字类型值自增设定值  Long decrement(K key)数字类型值自减  Long decrement(K key, long delta)数字类型值自减设定值 4 Spring Data Redis 操作 hash HashOperations 的常用方法  put(H key, HK hashKey, HV value)新增 hash  HV get(H key, Object hashKey)获取 hash 的值  Boolean hasKey(H key, Object hashKey)判断 hash 是否有该键  Set keys(H key)获取 hash 的所有键  List values(H key)获取 hash 的所有值  Map entries(H key)获取 hash 的所有键值对  Long delete(H key, Object... hashKeys)根据 hash 的键删除 hash 的值 5 Spring Data Redis 操作 list  Long leftPush(K key, V value)左侧加入元素  Long leftPushAll(K key, V... values)左侧加入多个元素  Long rightPush(K key, V value)右侧加入元素  Long rightPushAll(K key, V... values)右侧加入多个元素  V index(K key, long index) 根据索引进行查询 0 开始代表从左开始0 1 2... -1 开始代表从右开始-1 -2 -3...  List range(K key, long start, long end)根据索引范围查询  V leftPop(K key)从左删除一个元素  V rightPop(K key)从右删除一个元素 6 Spring Data Redis 操作 set  Long add(K key, V... values)添加元素  Set members(K key)查看所有元素  V randomMember(K key)随机获取一个元素  Long remove(K key, Object... values)删除多个元素  Set intersect(K key, K otherKey)两个 set 取交集  Set union(K key, K otherKey)两个 set 取并集 7 Spring Data Redis 操作 zse Boolean add(K key, V value, double score)添加元素  Double incrementScore(K key, V value, double delta)为元素增减分数  Double score(K key, Object o)查询一个元素的分数  Long rank(K key, Object o)查询一个元素在集合中的排名从 0 开始  Set range(K key, long start, long end)根据排名区间来获取元素列表  Set rangeWithScores(K key, long start, long end)根据 排名区间来获取元素列表包括分数  Set rangeByScore(K key, double min, double max)根据分数区间来获取 元素列表  Set rangeByScoreWithScores(K key, double min, double max)根据分数区间来获取元素列表包括分数  Long zCard(K key)统计集合大小  Long count(K key, double min, double max)统计分数区间的元素数量  Long remove(K key, Object... values)根据 key 删除元素  Long removeRange(K key, long start, long end)根据排名区间删除元素  Long removeRangeByScore(K key, double min, double max)根据分数区间删除元素 8 使用 Repository 操作 Redis  一般我们更多的时候使用 Template 方式操作 Redis因为 Redis 并不像关系型数据库 存入的大部分是对象操作 Redis 也不一定和对象相关。所以使用 Repository 操作 Redis 的方式我们了解即可。 创建实体类 // 表示将对象存入 key 为 student 的 hash 中 RedisHash(student) public class Student {// hash 的键存的是 id 字段Idprivate String id;private String name;private Integer age;// 省略 getter/setter、构造方法、toString 方法}创建 Repository 接口 public interface StudentRepository extends CrudRepositoryStudent, String {} 测试 Autowired private StudentRepository studentRepository; Test public void t1() {Student student new Student(1001, 懒羊羊, 10);studentRepository.save(student); } 五、 Spring Data ElasticSearch 1 概念 Elasticsearch 是一个实时的分布式搜索和分析引擎。它底层封装了 Lucene 框架可以提供分布式全文检索服务。 Spring Data ElasticSearch 是 SpringData 技术对 ElasticSearch 原生 API 封装之后的 产物它通过对原生 API 的封装使得程序员可以简单的对 ElasticSearch 进行各种操作。 2 Elasticsearch 回顾 2.1 核心概念  索引index索引是一个拥有几分相似特征的文档的集合类似于关系型数据 库中的库的概念。  类型type类型是索引中的一个逻辑上的分类/分区类似于关系型数据库中的数据表的概念。  文档document文档是一个可被索引的基础信息单元类似于关系型数据库中的记录的概念。  域Fieddocument 由多个域组成不同类型的 document 里面同名的 field一定具有相同的类型类似于关系型数据库中的字段的概念。 ElasticSearch 跟关系型数据库中概念的对比  注ES7.X 之后删除了 type 的概念一个索引不会代表一个库而是代表一张表。我们课程中使用 ES7所以此时概念对比为 2.2 安装 ElasticSearch 2.2.1 安装 ES 服务 1. 解压 elasticsearch 压缩文件 2. 解压 elasticsearch-analysis-ik将解压后的文件夹拷贝到 elasticsearch 的 plugins 目录下 3. 修改 es 服务器 config 目录下的 yml 文件加入以下配置 http.cors.enabled: true  http.cors.allow-origin: * 4. 启动 bin/elasticsearch.bat 5. 访问 http://127.0.0.1:9200  2.2.2 安装 ES 图形化管理软件 kibana ES 需要一个图形化管理软件方便我们操作此处我们安装 kibana。 1. 解压 kibana 压缩文件 2. 启动 bin/kibana.bat 3. 访问 http://127.0.0.1:5601  2.3 使用 Restful 风格的 http 请求方式操作 ES 创建索引 路径localhost:9200/索引 提交方式put 请求体 { settings:{ number_of_shards:5, number_of_replicas:1},mappings:{ properties:{id:{ type:long, store:true},title:{type:text, store:true, index:true, analyzer:ik_smart},content:{type:text, store:true, index:true, analyzer:ik_max_word}}} } 创建/修改文档 路径localhost:9200/索引/_doc/[文档id] 提交方式POST 请求体 { id:1, title:ElasticSearch是一个基于Lucene的搜索服务器, content:提供了一个分布式多用户能力的全文搜索引擎基于RESTful web接口。 } 删除文档 路径localhost:9200/索引/_doc/文档 id 提交方式DELETE 查询文档 路径localhost:9200/索引/_search 提交方式POST 请求体 { query: {查询类型: {查询属性: 查询条件值}}} 查询类型match_all、term、range、fuzzy等 使用 SQL 查询文档 在 ES7.X 版本后ES支持原生 SQL 查询文档 路径localhost:9200/_sql?formattxt 提交方式POST 请求体 {query: SELECT * FROM travel where id 1 } 2.4 使用 JAVA 原生代码操作 ES 使用 JAVA 原生代码操作 ES 代码非常繁琐我们了解一下即可。 这是一段创建索引的代码 CreateIndexRequest request new CreateIndexRequest(indexName); request.settings(Settings.builder().put(index.number_of_shards, 3).put(index.number_of_replicas, 2) ); // 创建索引结构,es7 及以后去掉了映射类型 XContentBuilder builder XContentFactory.jsonBuilder(); builder.startObject().startObject(properties).startObject(name).field(type, text).field(analyzer, ik_smart).endObject().startObject(age).field(type, integer).endObject().startObject(desc).field(type, text).field(analyzer, ik_smart).endObject().startObject(id).field(type, integer).endObject().endObject() .endObject(); request.mapping(builder); CreateIndexResponse response restHighLevelClient.indices().create(request, RequestOptions.DEFAULT); // 指示是否所有节点都已确认请求 boolean acknowledged response.isAcknowledged(); // 指示是否在超时之前为索引中的每个分片启动了必需的分片副本数 boolean shardsAcknowledged response.isShardsAcknowledged(); if (acknowledged || shardsAcknowledged) {log.info(创建索引成功索引名称为{}, indexName);return true; } return false; 由于使用 JAVA 原生代码操作 ES 代码非常繁琐我们在开发中更多使用 Spring Data ElasticSearch 框架操作 ES下面我们就学习使用 Spring Data ElasticSearch。 3 Spring Data ElasticSearch 项目搭建 1. 创建 SpringBoot 项目创建时加入 Spring Data Redis 起步依赖。 2. 写配置文件 spring:elasticsearch:rest:uris: http://localhost:9200 3. 创建实体类 Document(indexName travel) public class Product {IdField(type FieldType.Integer,store true)private Integer id;Field(type FieldType.text,store true,analyzer ik_max_word)private String productName;Field(type FieldType.text,store true,analyzer ik_max_word)private String productDesc; } Document标记在类上标记实体类为文档对象一般有以下属性如下  indexName对应索引库的名称  shards分片数量  replicas副本数量  createIndex是否自动创建索引 Id标记在成员变量上标记一个字段作为主键 Field标记在成员变量上标记为文档中的字段并指定字段映射属性  type字段类型  index是否索引默认是 true  store是否存储默认是 false  analyzer分词器名称  searchAnalyzer搜索时的分词器名称 4. 创建 ProductRepository 接口继承 ElasticsearchRepository 5. 在测试类注入
http://www.zqtcl.cn/news/610803/

相关文章:

  • 百度网站流量查询宣传片制作公司费用
  • 安徽炒股配资网站开发搭建平台载体
  • 中华建设杂志网站记者黑龙江省建设集团有限公司网站首页
  • 成都络迈品牌网站建设网站建设的行业资讯、
  • 英语网站大全免费赤峰市建设厅官方网站
  • 宁波网站建设熊掌号成都网络关键词排名
  • 织梦网站改版需要怎么做平台设计软件
  • 企业展示型网站网站建设设计
  • 增城网站建设服务网站建设制作设计公司佛山
  • 微网站套餐自媒体网站源码模板dede
  • 企业网站改版升级成都便宜网站建设公司
  • 广州公共资源建设工程交易中心网站新塘做网站
  • 数码港 太原网站开发公司iis 建立子网站
  • 做一个自己的网站需要什么商标设计网站猪八戒
  • 傻瓜式网站建设软件保险预约
  • 网站 备案规定自己做简单网站
  • 网站上怎么做支付接口南乐网站建设
  • 咸阳网站建设公司电话做个公司网站大概多少钱
  • 网站如何做关键词排名点子网创意网
  • 浙江建设培训考试网站河源东莞网站建设
  • 网站移动端做pc端的301跳转哪些网站是增值网
  • wordpress新闻站浙江耀华建设集团网站
  • 网站开发代理企业网站推广技巧和方法
  • 俄语网站开发用模板做的网站多少钱
  • 丽水网站建设公司广州网络公司
  • 做基金的网站哪个好针对大学生推广引流
  • 国外对旅游网站的建设互联网推广和互联网营销
  • 海南省建设厅网站首页有什么做设计的兼职网站
  • 网站导航功能苏州市高新区建设局网站
  • jsp网站 值班多语种网站开发