redis 存日志

Posted dy blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 存日志相关的知识,希望对你有一定的参考价值。

package main

import (
	"fmt"
	"time"

	"github.com/go-redis/redis"
)

func main() {
	start := time.Now()
	client := redis.NewClient(&redis.Options{
		Addr: "127.0.0.1:6379",
	})
	err := client.Ping().Err()
	if err != nil {
		panic(err.Error())
	}
	for i := 0; i < 1000000; i++ {
		now := time.Now()
		nowStr := fmt.Sprintf("%d-%d-%d %02d:%02d:%02d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
		client.LPush("log", nowStr+" 200 success laskdjflaskjdflkjasdl")
	}
	fmt.Println(time.Since(start))
}

  

package main

import (
	"fmt"
	"os"
	"time"
)

func main() {
	file, err := os.Create("test.log")
	if err != nil {
		panic(err.Error())
	}
	start := time.Now()
	for i := 0; i < 1000000; i++ {
		now := time.Now()
		nowStr := fmt.Sprintf("%d-%d-%d %02d:%02d:%02d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
		fmt.Fprintln(file, nowStr, "200", "success", "", "laksjdflkjsdal")
	}
	fmt.Println("time:", time.Since(start))
}

  

不对时间进行格式化处理时

对时间进行格式化处理后

 

可见redis和直接的fmt输出到文件,速度差了十倍左右

但用redis存日志查起来比较容易查,还可以将日期附加到key里区分每一天的日志,具体用文件存储还是redis按需求来

以上是关于redis 存日志的主要内容,如果未能解决你的问题,请参考以下文章

redis 如何存一个PHP数组 代码怎么写呢

argparse 代码片段只打印部分日志

常用python日期日志获取内容循环的代码片段

在导航抽屉片段中保存视图页面片段的状态

ELK分布式日志系统架构

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情