All Posts

手把手教你玩儿一下 Redis Module 之模块解读

引子 Redis 现在的 Stable 版本是4.0.11, 对Redis比较关注的童鞋都知道,4.0引入了 Module 。 我们先一起看看 Redis 4.0都更新了啥? 官方说法 Redis 4.0 was released as GA in July 2017. Contains several big improvements: a modules system, much better replication (PSYNC2), improvements to eviction policies, threaded DEL/FLUSH, mixed RDB+AOF format, Raspberry Pi support as primary platform, the new MEMORY command, Redis Cluster support for Nat/Docker, active memory defragmentation, memory usage and performance improvements, much faster Redis Cluster key creation, many other smaller features and a number of behavior fixed.

使用钉钉通知你的 Laravel 框架系统异常

看了Hanson兄弟的倍洽通知异常 我们团队主要用钉钉,就想找个Laravel的钉钉通知异常的包,最好是安装后开箱即用的。 在Google和GitHub上找了有3分钟还是没有找到能开箱即用的,于是自己动手丰衣足食。 花了20分钟”写”(chao)了一个Laravel 钉钉通知异常的包 ** wujunze/dingtalk-exception ** 食用方法 安装 composer require wujunze/dingtalk-exception 发布配置文件 php artisan vendor:publish --provider="DingNotice\DingNoticeServiceProvider 配置Handler app/Exceptions/Handler.php use Wujunze\DingTalkException\DingTalkExceptionHelper; class Handler extends ExceptionHandler { // ... public function report(Exception $exception) { DingTalkExceptionHelper::notify($exception); parent::report($exception); } } 记得配置你的 config/ding.php 效果如下 GitHub仓库: https://github.com/wujunze/dingtalk-exception Inspire And Thanks cblink/bearychat-exception wowiwj/ding-notice Thanks

PHP 依赖注入 (DI) 和容器 (IoC) 的简单实现

百闻不如一 Run 直接上代码

php_di.png

a:5:{s:4:“name”;s:10:“php_di.png”;s:4:“path”;s:35:“/usr/uploads/2018/04/4271284846.png”;s:4:“size”;i:1481879;s:4:“type”;s:3:“png”;s:4:“mime”;s:9:“image/png”;}

Rokid(全栈语音智能开发套件)开箱记

今天下午快递小哥给我打电话 说是有我的快递,我想应该是期待已久的Rokid(若琪)到了 回家之后迫不及待的开箱了. 拆开快递盒子是一个别致的黑色圆桶盒子,很有科技感 ,还有一个typeC的数据线(供电用) 打开盒子,可以看到两块板子 一块是开发板子 一块是Debug板子 开发板子是透明的塑料壳子,应有Rokid的Logo 简约而不简单 我找到Rokid开发社区的使用说明 Rokid ALL in ONE 语音交互 Skill 开发指南 比较尴尬的一点是,官方说明里面没有说明供电电源的电压电流是多少比较合适,家里正好有闲置的电源适配器5V2A的,就插上电开整. 我问过Rokid工作人员后,很快得到了回复,为Rokid工作人员的敬业打call! 通电以后,系统初始化,大概两分钟后紫色的等亮起,同时你需要把耳机或者音箱插入到耳机孔中,会有语音提示 “下载若琪APP完成网络配置” 然后就是按照文档中的步骤,下一步下一步就好了! 最后若琪连上了我家的WiFi 然后我就”调戏”一下若琪,让她放音乐,讲今天的资讯 语音识别挺准的,反应也很快,更多技能请看技能商店 很有意思的是,你叫”若琪”的时候,等会朝着你的位置亮起,就像若琪在看着你一样,哈哈 本次的开箱就到这里了,未来会结合树莓派,和其他IoT硬件厂商做一些有意思的事情 有兴趣的可以看看若琪的开发文档 还可以把RokidOS 系统移植适配 谢谢大家

实战开发一个Nginx扩展 (Nginx Module)

实战开发一个Nginx扩展 (Nginx Module) repo地址 https://github.com/wujunze/nginx-http-echo-module nginx_module_echo 使用echo指令输出一个字符串 Nginx 版本 Nginx1.0.10 https://github.com/nginx/nginx/releases/tag/release-1.0.10 开发环境 OS : CentOS Linux release 7.2.1511 (Core) 安装一个干净的 Nginx 下载 Nginx10.10 并且解压它 安装gcc和Nginx需要的lib ./configure –prefix=/usr/local/nginx && make && make install 运行Nginx 定义模块配置结构 typedef struct { ngx_str_t ed; //该结构体定义在这里 https://github.com/nginx/nginx/blob/master/src/core/ngx_string.h } ngx_http_echo_loc_conf_t; #定义echo模块的指令和参数转化函数 定义模块Context 定义ngx_http_module_t类型的结构体变量 初始化一个配置结构体 将其父block的配置信息合并到此结构体 实现了配置的继承 编写Handler 模块真正干活儿的部分 组合Nginx Module 整理模块代码 按照Nginx官方规范 编写config文件 ngx_addon_name=ngx_http_echo_module HTTP_MODULES="$HTTP_MODULESngx_http_echo_module" NGX_ADDON_SRCS="$NGX_ADDON_SRCS$ngx_addon_dir/src/ngx_http_echo_module.

run_res_new.png

a:5:{s:4:“name”;s:15:“run_res_new.png”;s:4:“path”;s:35:“/usr/uploads/2017/04/1661013309.png”;s:4:“size”;i:28047;s:4:“type”;s:3:“png”;s:4:“mime”;s:9:“image/png”;}

code_1.png

a:5:{s:4:“name”;s:10:“code_1.png”;s:4:“path”;s:35:“/usr/uploads/2017/04/3027017569.png”;s:4:“size”;i:31917;s:4:“type”;s:3:“png”;s:4:“mime”;s:9:“image/png”;}

new_1.png

a:5:{s:4:“name”;s:9:“new_1.png”;s:4:“path”;s:35:“/usr/uploads/2017/04/1958912765.png”;s:4:“size”;i:43794;s:4:“type”;s:3:“png”;s:4:“mime”;s:9:“image/png”;}

water_overflow.jpg

a:5:{s:4:“name”;s:18:“water_overflow.jpg”;s:4:“path”;s:34:“/usr/uploads/2017/04/467358714.jpg”;s:4:“size”;i:60042;s:4:“type”;s:3:“jpg”;s:4:“mime”;s:10:“image/jpeg”;}