MySQL COLLATE utf8_bin 的作用和用法
MySQL COLLATE utf8_bin 的作用和用法在 MySQL 中,COLLATE 是用于指定字符串比较和排序规则的关键字。utf8_bin 是一种 COLLATE,它用于指定在比较和排序字符串时使用二进制的方式,而不考虑字符的编码方式。本文将介绍 MySQL 中 COLLATE utf8_bin 的作用和用法,并提供一些示例。 1. COLLATE utf8_bin 的作用COLLATE utf8_bin 的主要作用是在比较和排序字符串时,将字符串视为二进制数据进行处理,而不考虑字符的编码方式。这意味着它会严格按照字符串中字符的字节值进行比较,不会考虑字符的大小写或者其他字符编码特性。因此,使用 utf8_bin 可以实现对字符串的大小写敏感比较,以及在某些特定场景下更精确的字符串匹配。 2. COLLATE utf8_bin 的用法在 MySQL 中,可以在查询中使用 COLLATE 关键字来指定字符串比较和排序的规则。示例如下: SELECT * FROM table_name WHERE column_name COLLATE utf8_bin = ...
Docker: Mac 运行 docker-compose up -d --build 抛错 `User interaction is not allowed.`
晕死了 好好地运行容器, 突然就一直抛错 bogon:2.lnmp-example admin$ docker-compose up -d --build Building nginxTraceback (most recent call last): File "site-packages/dockerpycreds/store.py", line 80, in _execute File "subprocess.py", line 356, in check_output File "subprocess.py", line 438, in runsubprocess.CalledProcessError: Command '['/usr/local/bin/docker-credential-desktop', 'get']' returned non-zero exit status 1.During handling of the above...
Composer 忽略扩展检查安装
--ignore-platform-reqs composer --ignore-platform-reqs require mix/concurrent
Mac M1 安装 Composer
在Mac M1上安装ComposerComposer是一个用于管理PHP依赖关系的工具,它提供了方便的方式来下载、安装和更新PHP包。然而,由于Mac M1芯片的架构不同于传统的x86架构,安装Composer可能需要一些额外的步骤。本文将介绍如何在Mac M1上安装Composer。 使用Homebrew安装ComposerHomebrew是Mac上流行的包管理器,它可以简化软件的安装过程。下面是在Mac M1上使用Homebrew安装Composer的步骤: 打开终端应用程序。 安装Homebrew,可以在终端中运行以下命令: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装Composer,运行以下命令: brew install composer 验证安装是否成功,运行以下命令: composer --version 如果成功安装,将显示Composer的版本信息。 注意事项在安装Comp...
docker-compose up启动又停止,需要加tty为true
如果docker-compose.yml如下,则用docker-compose up -d启动起来的容器可能会立即停止。 version: '2'services: mir-http-repo: image: 172.16.101.192/mir_docker/centos6.7_repo_jinzhong:v1.0 container_name: mir-http-repo ports: - 8088:8088 解决办法:加上tty为true version: '2'services: mir-http-repo: image: 172.16.101.192/mir_docker/centos6.7_repo_jinzhong:v1.0 container_name: mir-http-repo ports: - 8088:8088 tty: true
Docker Compose 配置文件详解
先来看一份 docker-compose.yml 文件,不用管这是干嘛的,只是有个格式方便后文解说: version: '2'services: web: image: dockercloud/hello-world ports: - 8080 networks: - front-tier - back-tier redis: image: redis links: - web networks: - back-tier lb: image: dockercloud/haproxy ports: - 80:80 links: - web networks: - front-tier - back-tier volumes: - /var/run/docker.sock:/var/run/docker.sock networks: front-tier: driver: bridg...
MinPHP 框架学习笔记
手册 MixPHP V2.1开发指南 MixPHP 环境要求Linux, OS X, WSLPHP >= 7.2Swoole >= 4.4.4 (websocket >= 4.4.8) 我先在本地弄个docker环境 git clone https://github.com/libenfu/docker-example.git 或 下载zip 按照 https://www.3pub.cn/index.php/archives/427.html 教程搭建docker 环境.当然自己修改下 docker-compose.yml 进入 cd 2.lnmp-example mixphp 代码放到 swoole/code 目录 运行 composer // 忽略扩展检查安装composer create-project --prefer-dist --ignore-platform-reqs mix/mix-skeleton mix 2.1.*Content-Length mismatch, received 1101147 bytes out of the ex...
Swoole WebSoctet 使用 zlib 压缩之 PHP 与 pako.js
一些理论知识先说一下deflate算法吧,deflate是zip压缩文件的默认算法, 其实deflate现在不光用在zip文件中, 在7z, xz等其他的压缩文件中都用, 实际上deflate只是一种压缩数据流的算法,任何需要流式压缩的地方都可以用。 也就是说 zlib 格式, gzip 格式,是文件格式,deflate 是这些文件格式使用的压缩算法。 传输方式 deflate 压缩后是二进制,通常有两种传输方式: 二进制 Base64编码 二进制PHP // 压缩,注意:其中 ZLIB_ENCODING_DEFLATE 参数是不能少的$data = gzdeflate(json_encode($array, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 6, ZLIB_ENCODING_DEFLATE);// 使用 swoole 以二进制的方式发送$webSocket->push($fd, $data, WEBSOCKET_OPCODE_BINARY); JavaScript // 消息事件ws.onmess...
缓存常用的3种读写策略
Cache Aside Pattern(旁路缓存模式)Cache Aside Pattern 是我们平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。 Cache Aside Pattern 中服务端需要同时维系 DB 和 cache,并且是以 DB 的结果为准。 下面我们来看一下这个策略模式下的缓存读写步骤。 写 : 先更新 DB 然后直接删除 cache 。 简单画了一张图帮助大家理解写的步骤。 读 : 从 cache 中读取数据,读取到就直接返回 cache中读取不到的话,就从 DB 中读取数据返回 再把数据放到 cache 中。 简单画了一张图帮助大家理解读的步骤。 你仅仅了解了上面这些内容的话是远远不够的,我们还要搞懂其中的原理。 比如说面试官很可能会追问:“在写数据的过程中,可以先删除 cache ,后更新 DB 么?” 答案: 那肯定是不行的!因为这样可能会造成数据库(DB)和缓存(Cache)数据不一致的问题。为什么呢?比如说请求1 先写数据A,请求2随后读数据A的话就很有可能产生数据不一致性的问题。这个过程可以简单描述为: 请求1先把c...
PHP 连接币安,okex,火币,websoket的示例代码
看到有同学在 Webscocket pong 包 php 踩坑实例 文章中留言 要我给出Demo满足这位同学的要求: 下面Demo使用的 Saber 人性化的协程HTTP客户端封装库运行环境 swoole4.2+ php7.1+ 需要使用协程 go(); demo 并不全 但坑都是踩过的 getSendMessage 创建订阅数据json格式这个就不提供了, 很简单没坑, 但最好控制好订阅交易对数量. 币安的webscocket 主要坑在于 ping包 非常正规的使用opcode是9, 并且收包中的data是空包, 回pong包 opcode传10./** * 币安现货ws 订阅 * @param array $symbolList 订阅交易对列表 * @param $subType 订阅类型 * @return bool */public function binanceSubscribe(array $symbolList, $subType = self::SUB_SPOT_DEPTH_TYPE){ // 订阅地址 $this->stream...




