8 爱思考的实践者

尚未进行身份认证

我的到来,让世界变得更好。My coming makes this world a better place to live in.

等级
TA的排名 9k+

redis五大数据类型的底层实现

一、redis数据类型简介二、字符串对象(string)三、列表对象(list)四、哈希对象(hash)五、集合对象(set)六、有序集合对象(zset)七、总结一、redis数据类型简介redis的五大数据类型,也称五大数据对象。redis有六大数据结构,分别为简单动态字符串SDS、列表、字典、跳跃表、整数集合、压缩列表。redis并没有直接使用...

2020-02-22 22:29:57

Redis的底层数据结构

一、Redis的数据结构简介Redis的底层数据结构一共有6种,分别为:简单动态字符串(SDS)、链表、字典、跳跃表、整数集合、压缩列表。Redis的数据类型一共有5种,分别为:字符串对象、列表对象、哈希对象、集合对象、有序集合对象。这五大数据类型(数据对象)都是由一种或几种数结构构成。在命令行中,可以使用 OBJECT ENCODINGkey来查看key的数据结构。二、简单动...

2020-02-22 18:31:12

Redis简介

Redis概述1、Nosql,非关系型数据库,key-value键值对存贮。2、内存型数据库,支持持久化,可将数据保存在硬盘上。3、单线程处理请求,但采用io多路复用技术。4、读写性能好,支持集群。Redis数据类型1、String类型:最基础的数据类型,简单的key-value键值对,value可以是任何数据,不限制类型,但大小最多不能超过512M。2、list...

2020-02-22 12:20:18

字符串中找出连续最长数字串(PHP版本)

题目描述一:读入一个字符串str,输出字符串str中的连续最长的数字串。如果有多个连续最长的数字串,只需输出第一个即可。输入描述输入包含1个测试用例,一个字符串str,长度不超过255。输出描述在一行内输出str中里连续最长的数字串。示例输入为:abcd12345ed125ss123456789输出为:数字串为123456789,长度为9思路分析:将字符串中数字串分离...

2020-02-21 20:08:07

进程、线程和协程的理解

一、进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。1.1 组成进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域...

2020-01-13 20:14:55

PHP错误Allowed memory size of XXXXXXXX bytes exhausted的解决方案

最近迁移一个PHP系统,在旧有的服务器上运行没有任何问题,在新的服务器上运行就会一直报“Allowed memory size of XXXXXXXX bytes exhausted”,尝试了好几种解决方案,记录如下。第一种方案:在PHP文件中加入ini_set(”memory_limit”,”128M”);当然,128M可以根据自己的情况改动,也不要设置太大;否则,系统其它资源会遇到...

2019-12-30 19:40:18

看懂Serverless,这一篇就够了

1.无服务器(Serverless)计算是什么云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务。无论这些技术应用在哪些场景,“降低成本、提升效率”是云服务永恒的主题。过去十年来,我们已经把应用和环境中很多通用的部分变成了服务。Serverless的出现,带来了跨越式变革。Serverless把“主机管理、操作系统管理、资源分配、扩容”,甚至是“应用逻辑的全部组...

2019-12-05 20:08:41

curl无法访问http/https的解决方法

今天遇到一个奇怪的事情,curl无法访问http/https url地址,但是postman可以调用,浏览器也可以访问。如下所示:仔细看了下curl -v的返回值,发现请求的是本地IP和端口,推测可能有http代理进程干扰。于是,顺藤摸瓜,查询下是否有进程占用这个端口,使用命令如下:$ netstat -a | grep 8123结果如下所示:确实是有进程占用这个端口,使...

2019-11-15 15:30:40

supervisor配置示例

supervisor是通过配置文件来管理进程的。可以把所有配置项都写到supervisord.conf 文件里,但并不推荐这样做。推荐做法是:通过 include 的方式,把不同的程序(或程序组)写到不同的配置文件里。为了举例,我们使用目录 /etc/supervisor/ 存放这些配置文件,相应的,把/etc/supervisord.conf里include部分的配置修改为:[incl...

2019-11-12 15:04:59

php支持mongo模糊查询、转义特殊字符

在php里面,mongo模糊查询某些带特殊符号的字符串,发现查不到结果。于是,一顿找资料,发现:必须将带转义特殊字符的字符串进行转义处理,才能匹配到结果。封装了一个PHP版本的mongo模糊查询转义特殊字符的方法,如下所示: /** * 转义正则特殊字符 ($()*+.[]?\^{},|) * * @param originStr * @return */ publ...

2019-11-05 14:20:22

php实现获取某指定叶子结点到根结点的路径

问题:有一个多叉树,如下所示: class node { public $data = null; public $children = null; public function __construct($data) { $this->data = $data; } } $r...

2019-10-30 15:59:51

php实现获取从叶子结点到根结点的路径

问题:有一个多叉树,如下所示: class node { public $data = null; public $children = null; public function __construct($data) { $this->data = $data; } } $r...

2019-10-30 15:40:38

高并发中的惊群效应简介

一.惊群效应简介所谓惊群效应,就是多个进程或者线程在等待同一个事件,当事件发生时,所有进程或者线程都会被内核唤醒。然后,通常只有一个进程获得了该事件,并进行处理;其他进程在发现获取事件失败后,又继续进入了等待状态。这在一定程度上降低了系统性能。具体来说,惊群通常发生在服务器的监听等待调用上。服务器创建监听socket,然后fork多个进程,在每个进程中调用accept或者epoll_wai...

2019-10-29 15:29:53

C10k问题简述

所谓c10k问题,指的是:服务器如何支持10k个并发连接,也就是concurrent 10000 connection(这也是c10k这个名字的由来)。由于硬件成本的大幅度降低和硬件技术的进步,如果一台服务器能够同时服务更多的客户端,那么也就意味着服务每一个客户端的成本大幅度降低。从这个角度来看,c10k问题显得非常有意义。一、C10K问题由来互联网的基础是网络通信,早期的互联网可以说是一...

2019-10-28 14:46:48

单台服务器并发TCP连接数到底可以有多大

曾几何时,我们还在寻找网络编程中C10K问题的解决方案。现在,从硬件和操作系统支持来看,“单台服务器支持上万并发连接”已经没有多少挑战性了。我们先假设:单台服务器最多只能支持万级并发连接。其实,这对绝大多数应用来说,已经远远足够了。但是,对于一些拥有很大用户基数的互联网公司,往往面临的并发连接数是百万、千万,甚至是上亿(百度、阿里、腾讯等公司,其网络服务TCP并发连接数往往会过亿)。现在的...

2019-10-28 11:06:25

php实现笛卡尔积

问题:有那么一个数组$arr = array( array(1, 2, 3), array('中','国','人'), array('a','b','c'));要求使用PHP语言实现计算该数组的笛卡尔积。实现过程如下所示:<?php $arr = array( array(1, 2, 3), array('...

2019-10-26 17:31:26

深入理解 MySQL ——锁、事务与并发控制

本文对 MySQL 数据库中有关锁、事务及并发控制的知识及其原理做了系统化的介绍和总结,希望帮助读者能更加深刻地理解 MySQL 中的锁和事务,从而在业务系统开发过程中可以更好地优化与数据库的交互。1、MySQL 服务器逻辑架构 (图片来源MySQL官网...

2019-10-21 19:17:16

mac下安装python3

mac下安装python31.先用brew search命令查看brew search python3结果如下所示:==> Formulaeboost-python3 python3 python@3If you ...

2019-10-14 14:42:19

etcdAPI 文档

etcd 对外通过 HTTP API 对外提供服务,这种方式方便测试(通过 curl 或者其他工具就能和 etcd 交互),也很容易集成到各种语言中(每个语言封装 HTTP API 实现自己的 client 就行)。下面介绍下 etcd 通过 HTTP API 提供了哪些功能,并使用httpie来交互(当然你也可以使用 curl 或者其他工具)。一、etcd的http api1.获...

2019-09-10 17:53:36

etcd安装简介

etcd的简介请参考https://blog.csdn.net/chinawangfei/article/details/95046120。本篇主要介绍etcd的安装。etcd 是用 go 语言编写的,安装过程简单,只需要下载对应的二进制文件,并放到合适的路径即可。1.单点安装如果在测试环境,启动一个单点的 etcd 服务,只需要运行etcd命令就行。2019-07-03...

2019-09-10 17:29:43

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。