我一直用这个来生成多个表公用的自增 id. 今天闲来无聊测了下, tps=10, 这有点低的离谱啊 测试代码 ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); Stopwatch stopwatch = Stopwatch.StartNew(); var count = 100000; for (int i = 0; i 测试结果 用时:8357, tps=11 stopwatch, Redis, tps, count
from chatgpt: 这段代码的问题在于每次循环都会创建一个新的 Redis 连接。在循环中频繁地创建和关闭连接会导致性能下降,并且可能会对 Redis 服务器造成不必要的负担。 为了改进代码,可以将连接创建和关闭的逻辑移动到循环外部,并且在循环内重复使用同一个连接对象。这样可以减少连接的创建和关闭次数,提高性能。 以下是修改后的代码示例: ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost"); Stopwatch stopwatch = Stopwatch.StartNew(); var count = 100000; var db = redis.GetDatabase(); for (int i = 0; i < count; i++) { var id = (int)db.StringIncrement("PMDCS:id_hello"); } stopwatch.Stop(); Console.WriteLine("用时:" + stopwatch.ElapsedMilliseconds + ", tps=" + (count / stopwatch.ElapsedMilliseconds)); 这样修改后,连接只会在循环外部创建一次,并在循环内重复使用。这样可以提高性能并减少对 Redis 服务器的负担。