集群环境描述如下:redis集群、zookeeper集群和应用服务器集群,有些服务需要获取服务器时间,该如何处理?
1、linux系统可以设置时间同步,直接可以取本机时间。
2、增加时间服务器,和备用时间服务器。通过配置文件制定,需要用到服务器时间的地方都从时间服务器获取。
3、通过time()函数取redis服务器的时间。
下面介绍下ridis的time()函数:
返回类型是list<String>,包含两个字符串,第1个字符串是unix时间戳(从1970年1月1日午夜至今的秒数),第2个时间是当前秒已经经过的微秒数。
将第1和2个字符串拼接起来,转换成long类型,然后除1000就得到了从1970年1月1日午夜至今的毫秒数。
还可以分别将第1和2个字符串转成long类型,然后将第1个转换后的long值乘1000加上第2个转换后的long除1000就得到了从1970年1月1日午夜至今的毫秒数。
前者效率要高于后者。