首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在go中执行redis

在go中执行redis
EN

Stack Overflow用户
提问于 2015-11-02 09:13:27
回答 1查看 1.1K关注 0票数 0

我正在尝试实现redis的基本功能,如下所示。

  1. 到达
  2. 设置
  3. ZADD
  4. 兹卡德
  5. 中科院
  6. 兹朗格
  7. 保存
EN

回答 1

Stack Overflow用户

发布于 2015-11-02 09:47:14

如果您想要实现一个提供一些Redis功能的Go服务器,这是相当容易的。您需要确定goroutine模型,然后实现/重用一些数据结构(map和skiplist),然后实现Redis协议(这很简单)。

我建议一个goroutine模型,每个客户端连接有2个goroutine,再加上一个goroutine来实现Redis引擎并管理数据结构。该模型的优点是您可以轻松地支持流水线和Redis命令的原子性属性,而无需任何显式锁定。如果您以后想通过支持阻塞命令(例如那些对队列有用的命令)来扩展范围,这个模型是非常适合的。

现在,如果您也想模仿相同的Redis行为,这就更复杂了。特别是,在后台保存数据,利用OS的即插即用机制将很难使用Go (因为分叉不起作用)。对于内存数据库,前台保存总是很容易的。背景保存是非常困难的。

您还可能希望查看以下尝试,并简化/丰富它们以满足您的目标:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33474153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档