大家如果是做后端开发的,想必都实现过列表查询的接口,当然有的查询条件很简单,一条 SQL 就搞定了。但有的查询条件极其复杂,再加上库表中设计的各种不合理,导致查询接口特别难写,然后加班什么的就不用说了(不知各位有没有这种感受呢~)。下面以一个例子开始,这是某购物网站的搜索条件,如果让你实现这样的一个...
项目简介Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口。可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。Tendis目前已经被应用...
本文会提到 52 条 SQL 语句性能优化策略。1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。2、应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使...
我们使用printf打印时基本都会用到 n 和 r 之类控制字符,比如:printf("hello world!rn");那你知道这些 n 和 r 的区别吗? 一、关于 n 和 r在ASCII码中,我们会看到有一类不可显示的字符,叫控制字符,其中就包含r 和 n 等控制字符。n : 换行符(new...
面试背景先说说thinkphp面试的背景,一般来说tp是大部分小白上手的框架,简易,入手快,开发快,所以一般面试官在考你tp内容的同时一定会问到你一些基础性的内容,那么下面就是我准备的一些基础和tp面试题:1、HTTP状态码点击这儿查看HTTP状态码详解常见的HTTP状态码:200 - 请求成功3...
一、"请你自我介绍一下"思路:1、这是面试的必考题目。2、介绍内容要与个人简历相一致。3、表述方式上尽量口语化。4、要切中要害,不谈无关、无用的内容。5、条理要清晰,层次要分明。6、事先最好以文字的形式写好背熟。二、"谈谈你的家庭情况"思路:1、 况对于了解应聘者的性格、观念、心态等有一定的作用,这...
事务隔离级别什么叫做“事务隔离”,事务隔离的意思是指多个事务同时在进行中时,各大事务被隔离开来,它们相互之间的影响和事务的隔离级别有关,按照“读未提交”–>“读已提交”–>“可重复读”–>“串行化”的顺序,越往后面隔离级别越高,事务之间的影响越小。下面的内容都以这个数据表为例...
缓存穿透那什么是缓存穿透,它就是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。它拿不到数据时,是会一直查询数据库,这样会对数据库的访问造成很大的压力。如:用户查询一个 id = -1 的商品信息,一般数据库 id 值...
一、redis应用1、记录帖子点赞数、评论数和点击数(hash)2、记录用户的帖子ID列表,便于快速显示用户的帖子列表(zset)3、记录帖子的标题、摘要、作者和封面信息,用户列表页展示(hash)4、记录帖子的点赞用户ID列表,评论ID列表,用于显示和去重计数(hash)5、缓存近期热帖内容(帖...
Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大...
不需要担心数据库性能优化问题的日子已经一去不复返了。随着时代的进步,随着野心勃勃的企业想要变成下一个 Facebook,随着为机器学习预测收集尽可能多数据的想法的出现,作为开发人员,我们要不断地打磨我们的 API,让它们提供可靠和有效的端点,从而毫不费力地浏览海量数据。如果你做过后台开发或数据库架构...
一、md5加密漏洞比较哈希字符串的时候,php程序把每一个以“0x”开头的哈希值都解释为科学计数法0的多少次方,恒为0所以如果两个不同的密码经过哈希以后,其哈希值都是以“0e”开头的,那么php将会认为他们相同。另外md5加密是有几率两个字符串不同,但是加密后的值是相同的情况,这种情况称为哈希碰撞...
前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互。网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,也可以伪造请...
1. Redis3.0优点a. 无中心节点b. 数据按照 slot 存储分布在多个 Redis 实例上c. 平滑的进行扩容/缩容节点d. 自动故障转移(节点之间通过 Gossip 协议交换状态信息,进行投票机制完成 Slave 到 Master 角色的提升)e. 降低运维成本,提高了系统的可扩展性和...
概述广告,敏感词检测一直以来都是让人头疼的话题,仅仅通过添加敏感词列表是解决不了问题的。今天封禁了这个词,明天又会有新的违禁词冒出来,比起愚公无穷尽的子孙更甚。敏感词匹配这种治标不治本的方法,在一定的语义下蛮有效的,但是这个场景对高并发,访问QPS高的服务来说,不是很合适。前段时间看到垃圾邮件检测用...
对于设计和实现 API 来说,当结果集包含成千上万条记录时,返回一个查询的所有结果可能是一个挑战,它给服务器、客户端和网络带来了不必要的压力,于是就有了分页的功能。通常我们通过一个 offset 偏移量或者页码来进行分页,然后通过 API 实现类似请求:GET /api/products?page=...
理解流式基础设施的使用和滥用,这一点很重要。Kafka 是一种消息代理,在过去几年中迅速流行起来。消息代理已经存在很长时间了,它们是一种专门用于在生产者和消费者系统之间“缓冲”消息的数据存储。Kafka 已经相当流行,因为它是开源的,并且能够支持海量的消息。消息代理通常用于解耦数据的生产者和消费者...
1 消息系统简介1.1 为什么要用消息系统 ?解耦 各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在;冗余 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险;灵活性和消除峰值 在访问量剧增的情况下,应用仍然需要继续发挥作用,使用消息队列能够使关键组件顶住突发的访问压力,而...
1、Docker容器信息##查看docker容器版本docker version##查看docker容器信息docker info##查看docker容器帮助docker --help2、镜像操作提示:对于镜像的操作可使用镜像名、镜像长ID和短ID。2.1、镜像查看##列出本地imagesdocke...
消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西?不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个...