Los cinco tipos de datos básicos más completos de Redis en 2022, conocimientos relacionados y comandos de shell (String, List, Set, Hash, Zset)

Los cinco tipos de datos básicos de Redis relacionados con el conocimiento y los comandos de shell

1. Introducción

Citando un párrafo en el sitio web oficial de Redis, Redis es un sistema de almacenamiento de estructura de datos en memoria de código abierto (con licencia BSD) que se puede utilizar como base de datos, caché y middleware de mensajes. Admite muchos tipos de estructuras de datos, como cadenas, hashes, listas, conjuntos, conjuntos ordenados con consultas de rango, mapas de bits, hiperloglogs y consultas de radio de índice geoespacial (geoespacial). Redis tiene replicación incorporada (replicación), secuencias de comandos LUA (secuencias de comandos Lua), eventos de controlador LRU (desalojo LRU), transacciones (transacciones) y diferentes niveles de persistencia del disco (persistencia), y a través de Redis Sentinel (Sentinel) y partición automática ( Cluster ) proporciona alta disponibilidad (alta disponibilidad)

2. Comandos básicos de shell de RedisKey

1. Ver todas las claves

keys *

2. Asigne un valor al valor clave especificado

set key值 value值

Por ejemplo

set name xg

3. Obtenga el valor de la clave.

get key值

Por ejemplo

get name

4. Determinar si la clave actual existe.

exists key值

Por ejemplo

exists name

5. Eliminar la clave actual

move key值 1

Por ejemplo

move name 1

6. Establecer el tiempo de vencimiento de la clave, en segundos.

expire key值 10

Por ejemplo

expire age 10

7. Ver el tiempo restante de la clave actual.

ttl key值

Por ejemplo

ttl age

8. Ver el tipo de clave actual.

type key值

Por ejemplo

type age

Tres, comando de shell de tipo de datos de cadena

1. Operaciones de cadena

1.1 Agregue una cadena, si la clave actual no existe, es equivalente a setkey

append key值 "value值"

Por ejemplo

append name zhangsan
或者
append name "zhangsan"

1.2 Obtener la longitud de la cuerda

strlen key值

Por ejemplo

strlen name

1.3 Alcance de la cadena

(1) Intercepta la cadena de 0 a 3, intervalo cerrado [0, 3]

getrange key值 起始位置 终止位置

Por ejemplo

getrange name 0 3

(2) Obtener la cadena

getrange key值 0 -1

Por ejemplo

getrange name 0 -1

1.4 Reemplazar la cuerda comenzando en la posición especificada

setrange key值 2 字符串

Por ejemplo

setrange name 2 wee

2. Operación de datos

2.1 Incrementar en uno

incr key值

Por ejemplo

incr age

2.2 Disminución en uno

decr key值

Por ejemplo

decr age

2.3 Establecer el tamaño del paso y especificar el incremento

Después de su uso, el valor original se incrementará en 10

incrby key值 步长值

Por ejemplo

incrby age 10

2.4 Establecer el tiempo de vencimiento

Establezca el valor de la clave en xxx y caduque después de 30 segundos.

setex key值 时间值 "value值"

Por ejemplo

setex name 30 "zhangsan"

2.5 Establecer solo si no existe

Si el valor clave no existe, cree la clave; si existe, la creación falla

setnx key值 "value值"

Por ejemplo

setnx name "zhangsan"

2.6 Establecer múltiples valores al mismo tiempo

mset key值1 value值1 key值2 value值2 key值3 value值3

Por ejemplo

mset k1 v1 k2 v2 k3 v3

2.7 Obtener múltiples valores al mismo tiempo

mget key值1 key值2 key值3

Por ejemplo

mget k1 k2 k3

2.8 Cuando hay varias asignaciones, configúrelo solo si no existe

msetnx es una operación atómica

msetnx key值1 value值1 key值2 value值2

Por ejemplo

msetnx k1 v1 k2 v2

3. Objeto

3.1 Establecer un valor de objeto usuario:1 como una cadena json para guardar un objeto

set user:{
    
    id}:{
    
    filed}

Por ejemplo

set user:1 {
    
    name:zhangsan, age:3}

3.2 método getset

Si hay un valor, obtiene el valor original y establece el nuevo valor.
Si no hay ningún valor, devuelve nil.

getset key值 value值

Por ejemplo

getset name zhangsan

4. Escenarios de uso

Contador
Contando el número de unidades múltiples
Seguidores
Almacenamiento en caché de objetos

4. Listar el comando de shell del tipo de datos

1. Introducción

En Redis, las listas se pueden convertir en pilas, colas y colas de bloqueo.
Y todos los comandos de lista comienzan con l, sin distinguir entre mayúsculas y minúsculas.

2. Operación de lista

2.1 Insertar un valor o varios valores en el encabezado de la lista (izquierda)

lpush 列表名 数据

Por ejemplo

lpush list one

2.2 Insertar un valor o varios valores al final de la lista (derecha)

rpush 列表名 数据

Por ejemplo

rpush list two

2.3 Obtener valores específicos a través de intervalos

lrange 列表名 起始位置 结束位置

Por ejemplo

lrange list 0 2

2.4 Obtener todos los valores de la lista.

lrange 列表名 0 -1

Por ejemplo

lrange list 0 -1

2.5 Eliminar el primer elemento de la lista.

lpop 列表名

Por ejemplo

lpop list

2.6 Eliminar el último elemento de una lista

rpop 列表名

Por ejemplo

rpop list

3. Operación de subíndice

3.1 Obtener un valor en la lista por subíndice

lindex 列表名 下标名

Por ejemplo

lindex list 1

3.2 Devolver la longitud de la lista

llen 列表名

Por ejemplo

llen list

3.3 Eliminar el número especificado de valores en el conjunto de listas (coincidencia exacta)

lrem 列表名 个数 value值

Por ejemplo

lrem list 1 one

3.4 Intercepta la longitud especificada por subíndice. (la lista cambia y solo se truncan los elementos interceptados)

ltrim 列表名 起始位置 结束位置

Por ejemplo

ltrim list 1 2

3.5 Eliminar el último elemento de la lista y moverlo a una nueva lista

rpoplpush 原列表名 新列表名

Por ejemplo

rpoplpush list list2

3.6 Reemplazar el valor del subíndice especificado en la lista con otro valor (operación de actualización)

Determine si la tabla existe. Si no existe, se informará un error al actualizar. Si existe, actualice el valor del subíndice actual.

lset 列表名 下标名 value值

Por ejemplo

lset list 0 name

4. Insertar operación

Insertar un valor específico antes o después de un valor en la lista

linsert 列表名 before 已存在的值 即将插入的值

linsert 列表名 after 已存在的值 即将插入的值

Por ejemplo

linsert list before one three

linsert list after one three

5. Presta atención

En realidad, es una lista vinculada, antes del nodo posterior, izquierda y derecha pueden insertar valores.
Si el valor clave no existe, cree una nueva lista vinculada.
Si el valor clave existe, agregue contenido
. Si todos los valores son Eliminado, una lista enlazada vacía también significa que no existe
en ambos lados. Insertar o cambiar valores tiene la mayor eficiencia, y los elementos intermedios son relativamente menos eficientes.
Cola de mensajes, pila de cola de mensajes (lpush rpop)
(lpush lpop)

Cinco, colección Set.

1. Establecer operaciones relacionadas con la colección

1.1 Agregar datos a la colección establecida

sadd set集合名 数据

Por ejemplo

sadd myset one

1.2 Ver todos los valores de la colección establecida

smembers set集合名

Por ejemplo

smembers myset

1.3 Determinar si un valor está en la colección establecida

sismember set集合名 数据

Por ejemplo

sismember myset one

1.4 Obtener la cantidad de elementos de contenido en la colección establecida

scard set集合名

Por ejemplo

scard myset

1.5 Eliminar el elemento especificado en la colección de conjuntos

srem set集合名 数据

Por ejemplo

srem myset one

2. Operación aleatoria

2.1 Extraer aleatoriamente un elemento

srandmember set集合名

Por ejemplo

srandmember myset

2.2 Extraer aleatoriamente un número específico de elementos

srandmember set集合名 个数 

Por ejemplo

srandmember myset 2

2.3 Eliminar aleatoriamente algunos elementos de la colección establecida

spop set集合名

Por ejemplo

spop myset

3. Mover un valor específico a otra colección de conjuntos

smove 原set集合名 新set集合名 value值

Por ejemplo

smove myset myset2 one

4. Operaciones de cobranza

4.1 Diferencia (SDIFF)

sdiff set集合1 set集合2

Por ejemplo

sdiff set1 set2

4.2 Intersección

sinter set集合名1 set集合名2

Por ejemplo

sinter set1 set2

4.3 Unión

sunion set集合名1 set集合名2

Por ejemplo

sunion set1 set2

6. Datos de tipo hash

1. Introducción

Su tipo de datos es una colección de mapas, y el mapa de claves (el valor es una colección de mapas) no es muy diferente del tipo String en esencia, sigue siendo un valor-clave simple.

2. Operación básica de hash

2.1 establecer un valor clave específico

hset hash名称 key值 value值

Por ejemplo

hset myhash field1 zhangsan

2.2 Obtener un valor de campo

hget hash名称 key值

Por ejemplo

hget myhash field1

2.3 establecer múltiples valores clave-valor

hmset hash名称 key值1 value值1 key值2 value值2

Por ejemplo

hmset myhash x1 y1 x2 y2

2.4 Obtener múltiples valores de campo

hmget hash名称 key值1 key值2

Por ejemplo

hmget myhash x1 x2

2.5 Obtener todos los datos

hgetall hash名称

Por ejemplo

hgetall myhash

2.6 Eliminar el valor clave especificado por hash

hdel hash名称 key值

Por ejemplo

hdel myhash x1

2.7 Obtener la cantidad de campos en la tabla hash

hlen hash名称

Por ejemplo

hlen myhash

2.8 Determinar si el campo especificado en el hash existe

hexists hash名称 key值

Por ejemplo

hexists myhash field1

2.9 Obtener solo todos los valores clave

hkeys hash名称

Por ejemplo

hkeys myhash

2.10 Obtener solo todos los valores

hvals hash名称

Por ejemplo

hvals myhash

3. Manipulación de datos

3.1 Incrementar en uno

hincrby hash名称 key值 步长

Por ejemplo

hincrby myhash num 1

3.2 Disminución en uno

hincrby myhash num -1

3.3 Juzgar la existencia

El valor se puede establecer si no existe y no se puede establecer si existe

hsetnx hash表名 key值 value值

Por ejemplo

hsetnx myhash name zhangsan

Seven, Zset (colección ordenada)

1. Introducción

Según el conjunto, se agrega un valor para ordenar.

2. Operación básica

2.1 Agregar un valor

zadd zset集合名称 排序的标志数字 数据

Por ejemplo

zadd myset 1 one

2.2 Agregar múltiples valores

zadd zset集合名称 排序的标志数字 数据2 排序的标志数字 数据3

Por ejemplo

zadd myset 2 two 3 three

2.3 Verificar todos los valores

zrange zset集合名称 起始位置 结束位置

Por ejemplo

zrange myset 0 -1

3. Operación de clasificación

preparación de datos

zadd salary 2500 zhangsan
zadd salary 3000 lisi
zadd salary 1000 wnagwu

3.1 Mostrar todos los usuarios, de pequeños a grandes (ordenar por puntuación si no se conocen los valores mínimo y máximo del rango)

zrangebyscore zset集合名称 -inf +inf

Por ejemplo

zrangebyscore salary -inf +inf

3.2 Mostrar todos los usuarios, de mayor a menor

zrevrange zset集合名称 0 -1

Por ejemplo

zrevrange salary 0 -1

3.3 Mostrar todos los usuarios con calificaciones

zrangebyscore zset集合名称 -inf +inf withscores

Por ejemplo

zrangebyscore salary -inf +inf withscores

3.4 Mostrar el orden ascendente de los empleados cuyo salario es inferior a 2500 (cuando un determinado valor se conoce como el valor máximo del rango)

zrangebyscore zset集合名称 -inf 范围最大值 withscores

Por ejemplo

zrangebyscore salary -inf 2500 withscores

4. Establecer operación

4.1 Eliminar el elemento especificado en el conjunto ordenado

zrem zset集合名称 数据名

resultado

zrem salary lisi

4.2 Obtener el número en el conjunto ordenado

zcard zset集合名称

Por ejemplo

zcard salary

4.3 Obtener el número de miembros en el intervalo especificado

zcount zset集合名称 起始范围 结束范围

Por ejemplo

zcount myset 1 3

Supongo que te gusta

Origin blog.csdn.net/qq_46106857/article/details/128301539
Recomendado
Clasificación