estructura de datos hashmap [Redis]

Una descripción

REDIS en el que un tipo HashMap de datos, es decir, la tabla hash

Normal de lograr HashMap:

1. Asignar tamaño fijo tamaño de la cubeta n

2. Calcular valor de clave hash y el módulo n, para obtener la bañera índice de posición de índice

2 El índice calculado, y después se almacena en el cubo correspondiente

4. Cuando nos enfrentamos a una colisión, el problema de colisión será resuelto por la lista


Dos, REDIS estructura de datos definida


dictht estructura: para la implementación real de la estructura de tabla hash

struct dict: una capa exterior que encapsula la tabla hash, una función se utiliza principalmente cuando la repetición dictht corriente requerida, lo que crea un nuevo dictht, y cuando se solicitó la palabra para completar la transferencia de una parte de la obra


struct dictEntry: por barril, que es la lista de resolución de conflictos próximo

Tres, repetición:

Redis tabla hash normal y tabla hash para darse cuenta de que no hay mucha diferencia, la única diferencia es algo diferente en el caso de la necesidad de re-expansión de rehash-

Como sabemos, Redis es el modo de un proceso de un solo subproceso, para el manejo de repetición Si ha completado un conjunto de datos de una sola vez, una gran cantidad de datos en tiempo, será

operación consume mucho tiempo, y por lo tanto no es una sola vez terminado ReDiS manejo de todos los datos, pero cada vez que la solicitud dará lugar a la manipulación de piezas,

Sin embargo, el tratamiento de los datos es una pequeña parte de ella.

1.lazy refrito, cuando cada operación dict, que llevará a una ranura para un nuevo HashMap

rehash 2.active, cada uno durante un período de tiempo será el manejo de datos


En cuarto lugar, el pequeño punto:

Cuando se utiliza un mapa hash, no significa que cada uno ReDiS directamente tabla hash unidireccional para almacenar datos, y por lo tanto cuando se usan solos clave-valor, el valor se utiliza como HashMap,

Sólo se puede utilizar para almacenar pequeñas cantidades de datos y sencilla, por lo que en consideración global de rendimiento y el consumo de memoria, etc., en los que comienzan Redis pasará ZipList (lista doblemente enlazada para almacenar los datos comprimidos) enlaces relacionados .

El control se utiliza cuando HashMap para almacenar, puede ser controlado por los parámetros:

512 (número de entrada de la ZipList máxima de almacenamiento) entradas de hash-max-ZipList-

de hash-max-ZipList-valor de 64 (el número máximo de bytes ZipList una entrada almacenada)

Cualquier más de estos dos límites, hablará ZipList convertidos en hashmap

Publicados 140 artículos originales · ganado elogios 28 · vistas 180 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_16097611/article/details/79872678
Recomendado
Clasificación