Redis字符串string底层原理
Redis作为一种存储字符串的缓存结构,其具体实现是由C语言完成,在C语言中,字符串是通过字符数组实现的,即char[],那么Redis对于字符串的实现是不是也是基于字符数组吗?不是的,Redis对字符串的处理是通过SDS(Simple Dynamic String)实现的。 SDS简单动态字符串,…
MySQL Explain详解
针对SQL语句我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,从而分析你的查询语句或是表结构的性能瓶颈。 通过EXPLAIN,具体我们可以分析出以下结果: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实…
Laravel中使用group by报错问题
问题出现的原因MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MyS…
MySQL如何优雅的储存IP地址
面试中关于MySQL的知识非常多,而如何储存IP地址又是经常被问到的一个。 避免“直接varchar类型不就得了”这样的零分回答。在这里手把手教你如何回答。 其实做任何程序设计都要在功能实现的基础上最大限度的优化性能。而数据库设计是程序设计中不可忽略的一个重要部分,所以巧存IP地址可以一定程度获得很…
IP地址与子网掩码
IP是什么大家心里否应该有B树就不细说了。IP地址的分类我们知道IPV4是4段点分的十进制数字,我们在计算分类是需要转换成二进制。例如最高位255.255.255.255的二进制就是32个1:11111111.11111111.11111111.11111111。A类地址A类地址最高位必须是0,形如…
PHP数组查找函数
php内置的三个数组函数来查找指定值是否存在于数组中,这三个数组分别是 in_array() , array_search() , array_key_exists()。 in_array(value,array,type) 该函数的作用是在数组array中搜索指定的value值,type是可选参数…
php-fpm的master进程杀死work还能处理任务吗
结论 master进程并不接收和分发请求,而是worker进程直接accpet请求后poll处理. master进程不断调用epoll_wait和getsockopt是用来异步处理信号事件和定时器事件. 验证方法 把Nginx和fpm都设置成了1个worker进程观察,得出结论是不会经过fpm的ma…
Go语言实现斐波那契数列
方法一package main import "fmt" func main() { result := 0 for i := 1; i <= 10; i++ { result = fibonacci(i) fmt.Printf("fibonacci(%d) is…
Go语言冒泡排序
package main import ( "fmt" ) /** 冒泡排序 */ func main() { arr := [...]int{21,32,12,33,34,34,87,24} var n = len(arr) fmt.Println("--------…
Go语言实现二分查找
package main import ( "fmt" ) //二分查找函数 //假设有序数组的顺序是从小到大(很关键,决定左右方向) func BinaryFind(arr *[]int, leftIndex int, rightIndex int, findVal int) …