go 语言直接使用 map 和连接 Redis 后使用 Map 性能差别有多大

查看 64|回复 4
作者:huahsiung   
go 语言直接使用 map 很方便
map1 := make(map[string]int)
key1 := map1["str1"]
但是发现有些 go 项目源码偏向使用 Redis 等第三方的 map.
import (
    github.com/go-redis/redis"
)
client := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "",               
        DB:       0,               
    })
client.Ping()
client.HSet("myhash", "key1", "value1")
value1, err := client.HGet("myhash", "")
然后看到项目的 map 并不是并发使用的,数据量也不是特别大。(有些并没有持久需求的也在使用 redis )
go map 和 redis map 都是内存使用的,而且速度也很快。但是很多需要查找 hash 关系表的项目,偏向使用如 redis map 等第三方表。
我粗略测试了一下,没看出什么区别(可能我测试数据较小)。如果排除 go map 不能并发读写外与 Redis Map 使用性能差别有多大

map, Redis, Client, 使用

zyxk   
我也想知道,等看结果
nagisaushio   
楼主可以贴下测试代码吗?直觉上 redis 应该会慢很多,毕竟隔了个 tcp 传输
yhtbiy   
这不是性能的问题吧,Redis 数据是可以持久的,你 go 内存里的重启了数据就都没了
dobelee   
1. 你的例子过于简单,实际业务大多存储结构体,这就涉及编解码和序列化的 CPU 内存消耗。本地缓存无需。
2. 你连接的是本地 redis ,连接耗时忽略,也不存在高峰期的网络波动。没有任何测试意义。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部