首页 文章 精选 留言 我的

精选列表

搜索[应用接续],共10000篇文章
优秀的个人博客,低调大师

PgSQL · GIS应用 · 物流, 动态路径规划

背景 双十一背后的技术系列文章 《聊一聊双十一背后的技术 - 分词和搜索》 每年双十一的交易额都创新高,今年也不例外,双十一几乎成了各种IT系统的大考,物流也不例外。 每次双十一快递几乎都被爆仓,但是随着技术的发展,今年,听说双十一刚过,小伙伴们的包裹差不多都收到了,今年的快递效率怎么如此之高呢? 今天,来给大家分享一下物流与背后的数据库技术,当然我讲的还是PostgreSQL, Greenplum, PostGIS一类,大伙了解我的。 物流行业是被电子商务催生的产业之一。 快件的配送和揽件的调度算法是物流行业一个非常重要的课题,直接关系到配送或揽件的时效,以及物流公司的运作成本。 好的算法,可以提高时效,降低成本,甚至可以更好的调动社会资源,就像滴滴打车一样,也许能全民参与哦。 以后也许上班路途还能顺路提供快递服务呢。 本文将以物流行业为例,给大家

优秀的个人博客,低调大师

[Docker应用系列·1] 浅析Jedis Pool

本文环境:jedis 2.1.0 redis 2.8.13 Redis无响应 我们的各个子系统均使用Jedis作为Redis的Java Client读写数据。 Jedis底层使用Apache的Common Pool,每个Jedis对象在底层都视为一个Object。 当释放连接失败后,我们的做法只是输出错误日志,这会导致该连接无法回收再利用,最终服务器的连接池会被拖垮,现象就是我们遇到的无响应、重启就好。 此前我们分析过,现在得出的结论是:这不是服务器操作系统连接数的问题,也不是数据频繁读写的问题,而是释放资源时遇到异常时,我们没有将该连接直接断掉、丢弃。 如下是AEnv代码的相关变更情况,仅做参考: 高效读写调研 常用的Jedis读写方式包括:set/get、hset/hget和mset/mget,分别用作基本读写、hash读写和批量读写。 对此,我

优秀的个人博客,低调大师

人工智能应用案例——智能客服

智能客服 点此咨询顾问 使用智能语音识别技术,将传统客服电话的通话内容以文本形式记录下来,再进一步做文本结构化和信息挖掘,对客服质量监测、做舆情分析和风险控制。 业务痛点及需求 在不少企业的售前咨询、售后客服场景中,每天有很多的客户提问一些常规性问题,导致人工客服工作繁琐重复,客服人力成本居高不下。 在企业的反馈高峰时段,如电商行业促销活动期间、房产行业上新楼盘期间,由于人工客服有限,导致在线用户提问排队时间很长,极大的影响了用户的体验。 人工客服人员水平层次不齐,导致服务质量高低不平。不但无法给出最合理规范的服务,而且连对客服人员的服务质量评估都非常困难。 系统架构 企业在阿里云开通账号。 企业通过阿里云提供的接口,将知识库按照固定格式上传到阿里云上。 企业通过阿里云提供的接口,更新数据库到自己的专用服务上 企业通过阿里云提供的接口,即可传入用户的问

优秀的个人博客,低调大师

数据库备份mysqldump应用总结

[root@ansible~]#mysqldump-uroot-p123456xxx>/opt/xxx.sql#备份数据库xxx [root@ansible~]#egrep-v"#|\*|--|^$"/opt/xxx.sql DROPTABLEIFEXISTS`test`; CREATETABLE`test`( `id`int(4)NOTNULLAUTO_INCREMENT, `name`char(20)NOTNULL, PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=7DEFAULTCHARSET=latin1; LOCKTABLES`test`WRITE; INSERTINTO`test`VALUES(1,'martin'),(2,'martin'),(3,'tom'),(4,'marry'),(5,'jacky'),(6,'脗铆'); UNLOCKTABLES; [root@ansible~]#mysqldump-uroot-p123456xxx--default-character-set=latin1>/opt/xxx1.sql#指定字符集导出数据库 [root@ansible~]#egrep-v"#|\*|--|^$"/opt/xxx1.sql DROPTABLEIFEXISTS`test`; CREATETABLE`test`( `id`int(4)NOTNULLAUTO_INCREMENT, `name`char(20)NOTNULL, PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=7DEFAULTCHARSET=latin1; LOCKTABLES`test`WRITE; INSERTINTO`test`VALUES(1,'martin'),(2,'martin'),(3,'tom'),(4,'marry'),(5,'jacky'),(6,'马');可以看到乱码已经不存在了,建表默认是latin1 UNLOCKTABLES; [root@ansible~]#mysql-uroot-p123456-e"usexxx;droptabletest;"删除表test [root@ansible~]#mysql-uroot-p123456-e"usexxx;showtables;"可以看到test表已经没有了 [root@ansible~]# [root@ansible~]# [root@ansible~]#mysql-uroot-p123456xxx</opt/xxx1.sql导回数据库 [root@ansible~]# [root@ansible~]#mysql-uroot-p123456-e"usexxx;showtables;"再次查看test表已经有了 +---------------+ |Tables_in_xxx| +---------------+ |test| +---------------+ [root@ansible~]# [root@ansible~]#mysqldump-uroot-p123456-Bxxx--default-character-set=latin1>/opt/xxx1_B.sql加-B选项导出 [root@ansible~]#cd/opt/ [root@ansibleopt]#diffxxx1.sqlxxx1_B.sql对比没有加-B选项和加-B选项时候的区别 18a19,26 >--CurrentDatabase:`xxx` >-- > >CREATEDATABASE/*!32312IFNOTEXISTS*/`xxx`/*!40100DEFAULTCHARACTERSETlatin1*/; > >USE`xxx`; > >-- 51c59 <--Dumpcompletedon2016-08-1323:07:34 --- >--Dumpcompletedon2016-08-1323:17:33 说明:直观看加了-B参数的作用是在导出数据库的时候增加了创建数据库和连接数据库的命令了,即如下两条语句 CREATEDATABASE/*!32312IFNOTEXISTS*/`xxx`/*!40100DEFAULTCHARACTERSETlatin1*/; USE`xxx`; [root@ansibleopt]#mysql-uroot-p123456-e"dropdatabasexxx;showdatabases;"删除数据库xxx +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |test| +--------------------+ [root@ansibleopt]#mysql-uroot-p123456</opt/xxx1_B.sql因为这是加了-B选项导出来的数据,所以前面不需要再指定数据库 [root@ansibleopt]#mysql-uroot-p123456-e"showdatabases;"可以看到数据库已经恢复了 +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |test| |xxx| +--------------------+ [root@ansibleopt]#mysqldump-uroot-p123456-Bxxx--default-character-set=latin1|gzip>/opt/xxx1_B.sql.gz用gzip压缩后再导出 [root@ansibleopt]#ll -rw-r--r--1rootroot2069Aug1323:17xxx1_B.sql -rw-r--r--1rootroot805Aug1323:33xxx1_B.sql.gz可以看到压缩后导出的数据大小小了很多 总结: 1、导出数据用-B参数 2、用gzip对备份的数据压缩 mysqldump的工作原理 利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库里面以逻辑的sql语句的形式输出 备份多个库 [root@centos02opt]#mysqldump-uroot-p123456-Btestzabbix|gzip>/opt/mul.sql.gz [root@centos02opt]#ll total4900 -rw-r--r--1rootroot5012554Aug1507:52mul.sql.gz -B参数是关键,表示连接多个库,并且增加usedb;和createdatabasedb的信息 [root@centos02opt]#mysql-uroot-p123456-e"showdatabases;"|grep-Evi"database|info|perf" martin martin_gbk martin_utf8 mysql test zabbix [root@centos02opt]#catmysql.sh#备份数据库多个库的脚本 #!/bin/bash fordbnamein`mysql-uroot-p123456-e"showdatabases;"|grep-Evi"database|info|perf"` do mysqldump-uroot-p123456--events-B${dbname}|gzip>/opt/${dbname}.sql.gz done [root@centos02opt]#shmysql.sh [root@centos02opt]#ll-h total5.1M -rw-r--r--1rootroot549Aug1508:34martin_gbk.sql.gz -rw-r--r--1rootroot845Aug1508:34martin.sql.gz -rw-r--r--1rootroot547Aug1508:34martin_utf8.sql.gz -rw-r--r--1rootroot199Aug1508:34mysql.sh -rw-r--r--1rootroot149KAug1508:34mysql.sql.gz -rw-r--r--1rootroot545Aug1508:34test.sql.gz -rw-r--r--1rootroot4.9MAug1508:34zabbix.sql.gz mysql>usemartin; Databasechanged mysql>showtables; +------------------+ |Tables_in_martin| +------------------+ |student| |student1| +------------------+ 2rowsinset(0.00sec) 备份单个表 [root@centos02opt]#mysqldump-uroot-p123456martinstudent>one.sql martin指的是库名student指的是表名这时候不能加-B参数了因为-B参数会将后面识别的都是库名 备份多个表 [root@centos02opt]#mysqldump-uroot-p123456martinstudentstudent1>two.sql martin指的是库名studentstudent1指的是两个表名 [root@centos02alertscripts]#mysqldump-uroot-p123456-dmartinstudent1 只备份student1表的结构martin代表数据库 [root@localhost~]#mysqldump-uroot-p123456-A-B--events|gzip>/opt/all.sql.gz-A代表所有数据库 [root@localhostmysql]#ll -rw-rw----1mysqlmysql236Aug1123:14mysql-bin.000001 -rw-rw----1mysqlmysql488Aug1200:51mysql-bin.000002 -rw-rw----1mysqlmysql722Aug1223:46mysql-bin.000003 -rw-rw----1mysqlmysql229Aug1301:06mysql-bin.000004 -rw-rw----1mysqlmysql244Aug1714:41mysql-bin.000005 -rw-rw----1mysqlmysql95Aug1714:41mysql-bin.index [root@localhostmysql]#mysqldump-uroot-p123456-A-B-F--events|gzip>/opt/all.sql.gz-F会刷新bin-log [root@localhostmysql]#ll -rw-rw----1mysqlmysql236Aug1123:14mysql-bin.000001 -rw-rw----1mysqlmysql488Aug1200:51mysql-bin.000002 -rw-rw----1mysqlmysql722Aug1223:46mysql-bin.000003 -rw-rw----1mysqlmysql229Aug1301:06mysql-bin.000004 -rw-rw----1mysqlmysql287Aug1714:50mysql-bin.000005 -rw-rw----1mysqlmysql149Aug1714:50mysql-bin.000006 -rw-rw----1mysqlmysql149Aug1714:50mysql-bin.000007 -rw-rw----1mysqlmysql106Aug1714:50mysql-bin.000008 -rw-rw----1mysqlmysql152Aug1714:50mysql-bin.index [root@localhostmysql]#mysqldump-uroot-p123456--master-data=1--compactmartin#--master-data=1该参数会找bin-log位置 CHANGEMASTERTOMASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=106; /*!40101SET@saved_cs_client=@@character_set_client*/; /*!40101SETcharacter_set_client=utf8*/; [root@localhostmysql]#mysql-uroot-p123456-e"showmasterstatus\G;" ***************************1.row*************************** File:mysql-bin.000008 Position:106 [root@localhostmysql]#mysqldump-uroot-p123456--master-data=2--compactmartin#--master-data=2该参数会找bin-log位置,但是语句被注释,实际并不执行 --CHANGEMASTERTOMASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=106; /*!40101SET@saved_cs_client=@@character_set_client*/; /*!40101SETcharacter_set_client=utf8*/; mysqldump的关键参数说明 1、-B 指定多个库,会增加建库语句和use语句 2、--compact 去掉注释,适合调试输出 生产环境不用 3、-A 备份所有库 4、-F 刷新binlog日志 5、--master-data=1 增加binglog日志文件名及对应的位置点 6、-x 锁表 7、-l 只读锁表 8、-d 只备份表结构 9、-t 只备份数据 10、--single-transaction 适合innodb事务数据库备份 生产场景myisam备份: mysqldump-uroot-p123456-A-B--master-data=1-x--events|gzip>/opt/all.sql.gz 生产场景innodb备份: mysqldump-uroot-p123456-A-B--master-data=1--events--single-transaction|gzip>/opt/all.sql.gz 数据库的恢复 mysql>dropdatabasexxx; QueryOK,1rowaffected(0.07sec) mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |test| +--------------------+ 4rowsinset(0.00sec) mysql>systemls/opt rhxxx1_B.sqlxxx1_B.sql.gzxxx1.sqlxxx.sql mysql>source/opt/xxx1_B.sql#用source命令恢复数据库 mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |test| |xxx| +--------------------+ 5rowsinset(0.00sec)

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册