在Redis服务端的代码量真的是比較大,假设一个一个API的学习怎么实现,无疑是一种效率非常低的做法,所以我今天对服务端的实现代码的学习,重在他的运行流程上.而对于他的模块设计在上一篇中我已经分析过了.不明确的同学能够接着看上篇.所以我学习分析redis服务端的实现也是主要从main函数開始.在分析main运行流程之前,Redis的作者在这里声明了几个变量,这个我们有必要知道一下. /* Our shared "common" objects */ /* 共享的对象 */ struct…
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致. 我们可以不考虑输出结果的顺序. 进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums2 小很多,哪种方法更优? 如…
你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本. 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错.实现一个函数来查找第一个错误的版本.你应该尽量减少对调用 API 的次数. 示例: 给定 n = 5…
给定一个整数n,判断它是否为2的次方幂. 方法:2,4,8都是2的n次幂 任何整数乘以2,都相当于向左移动了一位,而2的0次幂为1,所以2的n次幂就是1向左移动n位.这样,2的幂的特征就是二进制表示只有最高位为1,其他位均为0.二进制标下形式为: 10    100    1000 减1后与自身进行按位与,如果结果为0,表示这个数是2的n次幂 01    011    0111 结果: 10&01 = 0    100&011 = 0   1000&0111 = 0 class S…
给定一个链表,判断链表中是否有环. 进阶: 你能否不使用额外空间解决此题? /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ bool hasCycle(struct ListNode *head) { struct ListNode *pfast,*pslow; if(NULL == head || head->next == NULL…
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mysql-helper.js 编写数据访问方法 规划业务逻辑返回值 编写业务逻辑 注册 登录 首页 安全退出 写在之后 前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.…
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mysql-helper.js 编写数据访问方法 规划业务逻辑返回值 编写业务逻辑 注册 登录 首页 安全退出 写在之后 前言 前面一有写到一篇Node.js+Express构…
前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还是用以前的例子, 用Node.js+Koa2构建 Koa:   https://github.com/koajs/koa  http://koa.bootcss.com  (中文) Koa就不多介绍了,前面也写过Express,同一个团队打造,前面也过express文章,对比着看,自然可以看出些优点…
孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十一天. 今天继续学习mongoDB的简单操作,并继续对一些可能反复经常使用的操作进行简单的封装. 今天成功了解并实测完成了向mongoDB数据库中删除记录的操作,详细学习过程见屏幕录屏学习过程. 一.首先解决了昨天没有解决的修改记录的问题 今天花了一定的时间认真看相关资料,发现在修改记录时: [方法一]: 集合对象.update({查询记录的…
179.redis 是什么?都有哪些使用场景? Redis是一个key-value存储系统. 缓存,消息队列,排行榜/计数器,分布式架构,做session共享 180.redis 有哪些功能? 181.redis 和 memecache 有什么区别? 1 .Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储.memcache支持简单的数据类型,String. 2 .Redis支持数据的备份,即master-slave模式的数据备份. 3 .…