可平替 Redis ,微软开源 Garnet 缓存

可平替 Redis ,微软开源 Garnet 缓存

garnet 是什么

最近,微软正式开源了缓存存储系统 Garnet[1]。据微软官方介绍,Garnet 项目是从零开始采用 C# 构建的,注重性能(尤其是吞吐量中的线程可扩展性和更高比例的低延迟水平)。

可平替 Redis ,微软开源 Garnet 缓存

Garnet 比 Redis 更优秀的原因主要是它针对现代硬件进行了优化。Garnet 设计时考虑了现代多核处理器和高速网络的特点,使其在处理大量客户端连接和小批量数据时能够提供更高的吞吐量和更低的延迟。此外,Garnet 的架构使得它能够更有效地利用处理器缓存,从而提高性能。这些优化使得 Garnet 在现实的网络环境中表现更加出色。–FROM InfoQ

安装

  • 目前 garnet 只提供了 nupkg 的依赖包,暂未提供官方的镜像下载地址,笔者已在 Visual Studio 2022 编译 x86 已上传至 dockerhub
docker run -p 3278:3278  -d pig4cloud/garnet:latest

测试使用

  • 使用本地的 redis-cli 客户端即可链接 Garnet , 兼容 redis 协议。
 ~  redis-cli -p 3278
127.0.0.1:3278> info
# Server
garnet_version:1.0.0
garnet_mode:standalone
os:Unix 6.5.13.121
processor_count:8
arch_bits:64
uptime_in_seconds:20.9056586
uptime_in_days:0.0002419636412037037
monitor_task:disabled
monitor_freq:0
latency_monitor:disabled
run_id:6e00f92a00c16e2ad992353b7fef27d6a36e1a60
...
  • get set
127.0.0.1:3278> set k1 v1
OK
127.0.0.1:3278> get k1
"v1"
  • 命令支持列表
关键词
BITMAP
CLUSTER
CONNECTION
FUNCTIONS
GENERIC
GEO
HASH
HYPERLOGLOG
KEYS
LIST
PUB/SUB
SCRIPTING
SERVER
SET
SORTED SET
STREAM
STRING
TRANSACTIONS

Java 项目平替 Redis 操作

这里以 PIG 微服务开发平台[2]为例,项目基本使用了 Redis 常见命令 SET HASH PUB/SUB 等:

  • 只需要修改配置文件中的 redis 的配置指向 Garnet Server 即可, 链接驱动保持 spring-boot-starter-data-redis 即 lettuce 不变。

可平替 Redis ,微软开源 Garnet 缓存

127.0.0.1:3278> keys *
1) "k1"
2) "client:details::pig"
3) "menu_details::1"
4) "menu_details::2"
5) "user_details::admin"
6) "token::refresh_token::skVN2wyPrH3SV607JOLau1MED6VdXH0WOojq1A57fH2EtL2kdTaEmaVd8n24aL89uCUTeR32fKrTXi07nCBBfXB5pNUNDs9eHWgl-AjCQLXd08Z8qK0RBNwk2nqsqCrM"
7) "token::access_token::NGcjsiHNIAhdH0pSZwz2WTyKhxtzrFzjYCpO3MhG4nX2Nmsj9aqO6OVOlGvNGczAgYGztaU-3kTKpuyf7awUpMq7YbIDCNs8o2gIqqtGC2-dRGsJfj3wsGp834iRSQ9j"
8) "DEFAULT_CODE_KEY:84156608-9595-46c6-93c4-990828437d16"
(1.45s)

总结

官方表示:任何“使用 Redis、KeyDB 或者 Dragonfly 作为缓存存储方案的现有应用程序都适合 Garnet, 能提供更高的吞吐量、更低延迟、通过减少需要托管的缓存存储分片来降低成本,还可将数据溢出至本地磁盘或 SSD 以缓存超过内存大小的数据。此外,Garnet 也适合各种希望借极高性能缓存层提高性能、降低后端存储服务器或数据库成本的新型应用程序。”

参考资料
[1]

Garnet: https://github.com/microsoft/garnet

[2]

PIG 微服务开发平台: https://gitee.com/log4j/pig


原文始发于微信公众号(JAVA架构日记):可平替 Redis ,微软开源 Garnet 缓存

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/248932.html

(1)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!