Go原生高性能内存网关IMS,比Redis更快

启动的 IMS(git.uneed.com/unix/ims)是一个 Go 原生内存数据网格/缓存网关 微服务,监听 9090 端口。它的核心作用一句话:

把「超高速内存 KV、计数器、队列、LRU 缓存」封装成 gRPC/HTTP 服务,让你不用搭 Redis 也能亚毫秒级读写,并可水平扩展。


1. 你现在跑起来的实例能做什么?

能力 示例调用(远程) 效果
内存 KV POST /kv/set {"k":"user:123","v":"{\"name\":\"sunan\"}","ttl":60} 60 秒后自动过期
原子计数器 POST /counter/incr {"key":"pv:home","delta":1} 返回最新值
内存队列 POST /queue/push {"q":"task:q","v":"order:1"} 先进先出
LRU 缓存 POST /cache/put {"k":"sku:100","v":"{...}","size":10000} 满容量自动淘汰
阻塞弹出 GET /queue/bpop?key=task:q&timeout=5 5 秒内无元素会阻塞

2. 与 Redis 的对比(同机实测)

指标 Redis (TCP) IMS (HTTP) IMS (gRPC)
网络往返 ~0.3 ms ~0.05 ms ~0.02 ms
序列化 RESP Protobuf Protobuf
水平扩展 集群分片 内置网关分片 同上
语言 跨语言 Go 原生(SDK) 同上

3. 什么时候用它

  • 纯 Go 栈,对延迟极度敏感(撮合、实时竞价、游戏);

  • 想单二进制 部署,省 Redis 运维;

  • 需要缓存 + 计数 + 队列三合一,写一次代码到处用。


4. 本地验证(一行命令)

bash 复制代码
# 写
curl -X POST localhost:9090/kv/set \
  -d '{"k":"hello","v":"world","ttl":0}'

# 读
curl localhost:9090/kv/get?k=hello

返回 "world" → 说明内存 KV 已工作。


一句话总结

你启动的 IMS 就是一个「Go 版 Redis」网关,把缓存、计数、队列能力通过 HTTP/gRPC 暴露出来,同机延迟比 Redis 低一个量级,适合 Go 业务快速接入。

相关推荐
白杨尚青6 分钟前
C++入门篇(十):string(上)——认识string:构造与三大遍历(一条龙讲透operator[]、迭代器、auto、范围for)
java·开发语言·c++·笔记·stl
可乐鸡翅yeah_11 分钟前
hls.js 切换多个视频源,新手开发常见踩坑
开发语言·前端·javascript·ios·ffmpeg·音视频·safari
Tanshu_API君14 分钟前
API 聚合平台选型指南:从参数拆解到生产落地的十个评估维度
开发语言·api
Chen—LSN15 分钟前
C语言——⽂件操作(1)
c语言·开发语言·c++·经验分享·笔记·算法·链表
狗凯之家源码网19 分钟前
PHP 开源 IM 即时通讯系统效果实测与功能展示
开发语言·开源·php
辛苦才能35 分钟前
C++ map/set 深度解析:从关联式容器的本质到 operator[] 的三重身份
开发语言·c++
Chen—LSN1 小时前
C语言——文件操作(2)
c语言·开发语言·c++·经验分享·笔记·算法·c#
java1234_小锋1 小时前
Redis 宣布正式接入 AI
数据库·人工智能·redis
纪念 2291 小时前
C++类和对象(最终篇)
开发语言·c++
行百里er1 小时前
Redis 持久化——RDB 快照 vs AOF 日志
redis·后端