2019年5月9日
摘要: 这个用例的逻辑很简单, 服务器运行一个管理个人信息的服务, 提供如下的四个服务: (1) 添加一个个人信息 注: 对应于Unary RPCs, 客户端发送单一消息给服务器, 服务器返回单一消息 (2) 添加多个个人信息 注: 对应于Client streaming RPCs, 客户端使用提供的str 阅读全文
posted @ 2019-05-09 10:20 月落无影 阅读(1222) 评论(0) 推荐(0)
  2019年5月8日
摘要: 这个用例的逻辑很简单, 服务器运行一个管理个人信息的服务, 提供如下的四个服务: (1) 添加一个个人信息 注: 对应于Unary RPCs, 客户端发送单一消息给服务器, 服务器返回单一消息 (2) 添加多个个人信息 注: 对应于Client streaming RPCs, 客户端使用提供的str 阅读全文
posted @ 2019-05-08 11:36 月落无影 阅读(7921) 评论(0) 推荐(2)
  2019年5月7日
摘要: EXPIRE key seconds 用来对一个键设置一个过期时间,第二个参数表示经过多少秒后键过期。 一个键过期后, 这个键将会被自动删除。 在Redis术语中,带有过期时间的键经常被称作volatile(易变的)。 当对这个键使用删除,或者覆盖操作的时候, 过期时间会被清理,这些操作包括DEL, 阅读全文
posted @ 2019-05-07 23:03 月落无影 阅读(940) 评论(0) 推荐(0)
摘要: 我在写grpc的实例时, 需要使用一个多线程的hash map, C++标准库中没有多线程的hash map, facebook开源的folly中存在大量的基础类, 中间存在一个高性能的hash map,这个正是我所需要的, 所以在这里简介一下folly库, 按照官方说明, folly库安装需要gc 阅读全文
posted @ 2019-05-07 12:35 月落无影 阅读(6682) 评论(2) 推荐(2)
  2019年5月6日
摘要: 下面的扩展代码基于redis 5.0.2进行扩展, 对于其他的redis版本, 我没有进行相关的测试。考虑到redis集群的修改频率,这段代码应该同时适用于其他的redis版本。 下面为修改的代码: 上述代码, 就是新增的在集群中移动槽位的功能, 使用方法如下: (1)在redis-cli.c文件中 阅读全文
posted @ 2019-05-06 21:55 月落无影 阅读(1708) 评论(0) 推荐(0)
摘要: 这里给出的令牌桶是以redis单节点或者集群为中间件. 不过, 这里的实现比较简单, 主要提供两个函数, 一个用于消费令牌, 一个用于添加令牌. 这里, 消费令牌和添加令牌都是通过lua来保证原子性. 消费令牌的代码如下 : 这里每一个key都有一个辅助的key_idx, 每次增加key的令牌数, 阅读全文
posted @ 2019-05-06 18:05 月落无影 阅读(5469) 评论(2) 推荐(0)
  2019年5月2日
摘要: 在debian/ubuntu系统下,需要做如下准备操作: 如果你想要从源码编译并且运行测试,同时运行下面的安装: 下拉源代码信息(包括子模块) 在编译之前,你需要下拉grpc的github仓库,并且下载grpc的一些依赖库,具体操作如下: protoc安装 默认grpc使用protobuf,你需要p 阅读全文
posted @ 2019-05-02 18:42 月落无影 阅读(6293) 评论(0) 推荐(0)
  2019年4月30日
摘要: 在这里,我先讲述C++使用protobuf,之后,会补充使用go语言使用protobuf。 使用protobuf需要有如下步骤: 下面我们看一下定义的.proto的文件的源代码: 这里,我们对.proto文件所使用的语法进行简单讲解。 1)protobuf使用的.proto文件以包声明开始,包声明和 阅读全文
posted @ 2019-04-30 22:42 月落无影 阅读(8752) 评论(0) 推荐(0)
  2019年4月27日
摘要: 为了使用源码编译protobuf,需要下面的工具: autoconf, automake, libtool, make, g++, unzip 如果你使用ubuntu/debian,你可以使用如下方式安装这些工具: $ sudo apt-get install autoconf automake l 阅读全文
posted @ 2019-04-27 23:14 月落无影 阅读(5447) 评论(0) 推荐(0)
  2019年4月26日
摘要: 之前曾写过一个通过C++11的condition_variable实现的有最大缓存限制的队列,底层使用std::queue来实现,如果想要提升性能的话,可以考虑改用固定的长度环形数组。环形数组实现如下: 关于上面的环形数组,简单的单元测试代码如下,这里使用了catch2,如下代码需要放在.cpp文件 阅读全文
posted @ 2019-04-26 23:08 月落无影 阅读(504) 评论(0) 推荐(0)