Red de conocimientos sobre prescripción popular - Colección de remedios caseros - Modifique la puntuación de redis zset a una configuración de 64 bits y admita el algoritmo de identificación del copo de nieve.

Modifique la puntuación de redis zset a una configuración de 64 bits y admita el algoritmo de identificación del copo de nieve.

Hay muchos artículos introductorios sobre el algoritmo Snowflake ID, por lo que no entraré en detalles. Por supuesto, el algoritmo Snowflake ID también tiene un problema de devolución de llamada de tiempo, que se puede entender consultando los dos enlaces siguientes:

/baidu/uid-generator

/p/77737855

Sin embargo, cuando guardamos este ID de 64 bits en el zset de redis, nos enfrentamos al problema de desbordamiento de la puntuación del zset, porque la puntuación es de tipo doble de 64 bits (float64). Algunos desarrolladores también han propuesto una solución a este problema. Consulte:/developer/article/1525534 para obtener más detalles.

La similitud entre sus soluciones es cambiar el ID del copo de nieve a 52 bits para evitar el desbordamiento (la precisión entera de float64 es 52 bits), pero esto conducirá inevitablemente a un rango más pequeño de ID. Por ejemplo, su negocio es guardar mensajes durante 15 días. Esta modificación no es una implementación que satisfaga escenarios comerciales complejos. El código fuente del servidor redis se modificó intermitentemente en 20 y 21. El tipo de puntuación se cambió de float64 a int64. Las interfaces de cliente de PHP redis y Goridis también se modificaron simultáneamente. Debido a que se utiliza en el negocio emergente de la empresa, el código fuente no se puede divulgar sin el consentimiento de la empresa y no es difícil modificarlo.