上面一堆人还没搞清楚原因就给建议..
1.Mysql 支持事务但性能不够,Redis 性能够但不支持事务。
2.Redis 性能之所以够用,本质是因为相对于 Mysql,Redis 砍掉了数据安全与事务功能,这样全跑在内存里,又不要考虑事务,速度不快才怪。
3.题主的需求:Mysql 数据更新之后,要求 Redis 必须和数据库一致,本质上是要给 Redis 增加事务,还要让 Redis 接受 Mysql 的控制,这是不现实的。
================
几种方案:
1.Mysql 数据只做新增,不查不改不删,然后推送到 Redis,Redis 做只查,然后允许 Mysql 与 Redis 存在短期内的不一致。这是大厂,包括谷歌的标准玩法。
2.有钱能增加机器,并且业务支持并行写入或并行读取,则可以根据业务,把系统设计为对并行写入优化但会增加读取时间,或者设计为对并行读取优化但会增加写入时间。
3.非常有钱,直接上 Oracle 最新版,支持内存表,虽然没 Redis 快,但比 mysql 快得多,还支持事务。
这种问题,建议按经济实力去考虑。
1.如果经济条件欠发达,建议用时间换成本的做法:
3 个表:用户表、关键词表、关键词与用户对应表。
每个表都不能有重复的,来节约存储空间与内存,但牺牲的是计算量、计算时间。
2.如果经济条件发达,玩法就完全不一样了,核心原则就变成了节约时间:
2.1 用户数据相关的 2 种表:
2.1.1 用户表:
可以重复的用户表。用户数据录入到这个表,但不从这个表取数据。
不可重复的用户表,数据是从上表,通过最终一致性 + 散列分布式 + 流式处理到该表里。数据取出也是从这个表取,这样子处理,取出速度最快。
2.2.2 用户-关键词表:
该表本质是用于节约时间,是一种冗余表。这种表也同上,做两款,一款拿来录入数据,允许重复;一款拿来高速取出数据,不允许数据重复。
2.2 关键词数据相关的表:
同与上面的用户数据表,一共 2 种:关键词表与冗余的关键词-用户表。做法也同上,每种表也做重复与不重复两套。
总结一下,以上一共 8 个表,为节约时间服务,也就是为高速取出数据服务,牺牲了存储空间与内存。
另外,如果存储用的是高级存储设备或做了软阵列或分布式副本提速,需要考虑数据录入速率与存储底层条带化结构( raid 0 )或分布式散列结构的关系,以及数据取出时与存储底层镜像化( raid 1 )或分布式副本化的关系。也就是在读写时,画个流程图,思考一下底层存取逻辑与读写性能的关系。
你可以自己写个程序,生成 16 位大小写加符号的密码。理论上,除非量子计算机,否则全球计算机一起破解,以现在的算力,百年内破不了。
当然,这种密码,不方便记忆,也不方便存储。
对此我有更好的建议:
自定义前缀 + 可记录的包含大小写 /符号 /数字的复杂密码 + 固定算法加盐。
其中自定义前缀与固定算法,要选方便背诵的,记在脑子里。
固定算法还要选方便口算的。
举个例子,对于本站的密码:
自定义前缀:passWd2020 。这种好背诵吧?背诵下来,别写在任何纸质笔记本上,也别写在云笔记里。
可记录的包含大小写 /符号 /数字的复杂密码:v2Ex_#xH9dY7 。这种密码,可以写在纸质笔记本上,也可以写在云笔记里。
固定算法:把密码的最后一位,如果是字母,则大小写翻转,然后结尾再加固定字符串"2333";如果密码最后一位是数字,则加上乘以 4 的 intToString 字符串,再加固定字符串"2333"
因为密码最后一个数字是 7,因此乘以 4,intToString 后是"28",再加"2333",因此固定算法产生的最终字符串为 282333
最后,拼起来:
passWd2020 + v2Ex_#xH9dY7 + 282333
这种密码方案,既安全,又能记录在云笔记里。
1.中国的广告,很多多少夸大其词,不止拼多多。以前淘宝与京东都有类似行为。
2.拼多多在这些优惠方面,是比较坑,但是它的月卡是真的香,而且拼多多上面很多与京东同类的产品,是可以以 5 折-7 折价格买到。
凡事都有优缺点,成年人看问题要全面。
传统软件功能多,业务复杂。一旦复杂起来,就很难追求极致的性能。这是软件开发的原理,没办法的。
Blackwater 如果发展起来,功能增多后,同样也会面临这个问题。
看看早期的 nginx 、redis 、mongodb 、mysql,Java 、.Net 、CPP,甚至 CPU 、GPU 的发展史,也都遇到过这些问题。
这个分人来看的。
有些人是天生喜欢小朋友,有钱又有闲,这种人要孩子是对生活质量的提高。
但反之,就绝对不建议要小孩了。
我买房买车都是全款。
原因很简单,省事。买完就不用操心了。
电信 4G 曾经有个真·无限流量套餐的融合套餐,超过流量后,只降速(降速后 IM 软件不影响使用),超出流量不需要额外付费。这种套餐目前已经无法新办,但老用户可以续费。
现在电信 5G 的融合套餐,超过流量后,不降速,但超出流量需要额外付费。
如果你是电信 4G 真无限流量的融合套餐,不建议你升级到 5G,除非你对 5G 有刚需。
另外,是否升级的唯一标准是,目前是否够用。够用就别升,不然消费是无止尽的。
你提到:
1.家宽上行方向单个 TCP 连接被限速至 500KB/s 左右
2.从家里向外发起 TCP 连接,上行可以跑到协议标称带宽
这两点,你具体是怎么测试的?
上传测试,我建议你试试:
1.下载一个 360 安全卫士,打开流量防火墙,里面有上下载的实时速度。你如果不喜欢 360,测完后可以删除。
2.接着,分别用 QQ 邮箱的中转站上传、牛奶快传的免费额度上传、百度网盘如果有 svip 账号的上传、speedtest 之类的网站上传,测试一下,看看速度。
电信家宽,一般情况下,上传带宽等于下载带宽的八分之一。
请立即断电,然后,要不这台电脑先别开机了,更好的办法是开机箱把硬盘拆下来,这些措施都是防止你不小心开机后,写入新的数据。
准备一个同容量的硬盘,WinPE 下挂硬盘底座,做一个全盘克隆,作为备份。
接着拿备份盘慢慢玩,DiskDoctor 、EasyRecoveryPro 、finaldata 、RStudio 等等,百度都有 D 版,效果不能保证,而且低端差的情况下,恢复时间较长。
另外,恢复出来的数据,文件名大概率是个随机字符串。
如果数据很重要,就带上原盘,再带一个同样容量的,去电脑城找专门的数据恢复,价格有点贵,好像是 800 多元每 TB 。
题主这句话 [假设前端可以直接操作数据库并且解决了安全问题] ,本身就是矛盾的:
1.数据库属于后端。
2.前端直接操作数据库注定不安全。
低配虚机之所以便宜,是因为大厂知道大部分买家,购买后,是拿来吃灰的。
如果大家看了这个帖子,都让虚机 7*24 高负载,下次续费或新购时,就不是这个价格了。
一台最新的低功耗普通办公电脑,仅主机,7*24 小时开一年,不干活,待机功耗大约 120 元。满载功耗至少得翻个十倍。对比一下一年只要七八十甚至三四十的云虚机?
1.Buffer 只是个临时缓存,requestSize 没必要等于 file size,不然百度网盘的 SVIP 价格得翻几倍。你下载一个迅雷,以及其他 BT 软件,看看里面的硬盘缓存最大值是多少。
一般来说 requestSize 的 sizes 是 4k 的倍数,老旧服务端一般是 4/8/16 KB,再有钱的 bat 也最多 1/2MB 。
2.建议 debug,看看 ByteBuffer.allocate 之后里面到底是什么,有没有必要再做 clear()。
3.里面很多方法都会抛异常,建议阅读文档,该处理的一定要处理。
4.while (socketChannel.read(readBuffer) > 0) {} ,这也是没读文档造成的。先不说异常处理,read 方法有几种返回值,认真看一下文档。
5.重新改正后,先找个 100 字节文档测试一下,java 端收到后立马 write file,然后与 source file 对比一下内容。没问题后再测试 100KB file 、100MB file 甚至几十 GB 的 file 。先 md5 对比,不一样后再找一款基于 byte 对比的软件,比如 BeyondCompare 、TextDiff 甚至 Ultra Edit 。
小米的 MIUI 是我和同事们评测过的,移动系统 OS 里,国内第一。
1.千万别听上面的朋友说,用网盘,特别是百度网盘,那就坑死了。
网盘不是用来备份关键资料的,特别是视频。
普通网盘,上传的文件,有被损坏的危害,比如某几个字节发生错误。发生的原因一般是网盘提供商因为经济原因省去了校验环节,或者是硬件没有定期进行检查与维护。
百度网盘,上传的文件,存在无法下载的危害,比如因版权问题,比如视频变几秒。我同事还是超级 VIP,半个月前才发生一次,百度网盘客户端,把他电脑里的文件夹删干净了,有可能是他误操作。然后,从百度网盘还原时,有些资源居然因版权问题,无法下载。你说这操蛋不,自己用于备份的资料还不允许下载了。
要备份,老老实实挂硬盘,别贪图方便,别贪图便宜。
2.其次,针对题主这种需求,网店有成熟的方案,那就是在打包地点,安装专门的高清监控设备,这种方案最好是去当地监控专卖店,让他们帮你做方案,包括施工,这些钱该花的一定要花,别贪便宜用 PC 组方案。打包场所的监控视频,要的是清晰+稳定,千万不能要性价比。我跟踪过太多案例,因为前期舍得投入专门的高清视频监控,后期遇到奇葩买家换不同的账号撕逼说没收到货,老板通过成功调取监控视频,赢得投诉。
案例找不到了,当时是在知乎上看到的,数量很多,有空的话建议搜一下,大意是有几个账号经常谎称缺货,后来卖家发现地址相同,找监控,才查出是同一人。
提醒一下,电视不要买基于互联网的,因为互联网电视 = 电视机 + 内置机顶盒。由于 app 经常更新换代,内置机顶盒很容易出现过几年就性能跟不上。
电视机 + 外置机顶盒才是正解。
另外电视机,推荐 Sony,毕竟要用很久的东西,这个设备不要图便宜。