profundidad Aventura Redis (7) - operaciones comunes y la estructura de datos básica

Un comando básico

0. instrucción de clase

// 登陆redis客户端
redis-cli -h ipAddress -p port -a password
// 查看redis信息
info <memory>
// 尝试连接
ping
// 查看key是否存在
exists key 
// 设置key的过期时间(秒)
expire key seconds
// 设置key的过期时间(毫秒) 
pexpire key millseconds
// 通过正则表达式查询key
keys pattern
// 将key移到其他db
move key dbName
// 取消过期时间
persist key
// 查看key的过期时间(秒)
ttl key
// 查看key的过期时间(毫秒)
pttl key
// 随机返回一个key
randomkey
// 重命名key
rename oldKeyName newKeyName
// 查看key的类型
type key
// 删除key
del key

Los comandos básicos 1.String

Buffer y una cadena de datos lógica simple que se usa para lograr dominio caliente, y la realización de bloqueo distribuido.

// 添加key和value
set key value
// 获取key的value
get key
// 如果key不存在则添加
setnx key value 
// 添加key并设置过期时间
setex key value
// 在key不存在时添加key并设置过期时间
set key value ex expireTime nx
// 批量添加key-value
mset key1 value1 key2 value2 ...
// 获取key的value并设置新的value
getset key newValue
// 批量获取key
mget key1 key2 ...
// 查看key的value长度
strlen key
// 自增key的value
incr key
// 增量递增key的value
incrby key increment
// 自减key
decr key 
// 增量递减key的value
decrby key decrement
// 在key的value之后追加
append key value

Los comandos básicos 2.list

Para limitar la lista de las acciones comunes, así como la pila y cola, utilice brpop blpop o más puede lograr una cola sencilla bloqueo.

// 右push
rpush listName v1 v2 v3
// 左push
lpush listName v1 v2 v3
// 右pop
rpop listName
// 左pop
lpop listName
// 在等待时间内阻塞左读取
blpop listName timeOut
// 在等待时间内阻塞右读取
brpop listName timeOut
// 查看长度
llen listName
// 遍历
lrange key startIndex endIndex
// 修改指定位置的元素
lset listName index value
// 删除指定位置的元素
lrem ket count value
// 将制定位置的链表截取出来替代原链表
ltrim key startIndex endIndex

Los comandos básicos 3.hash

asociativo común y almacén de la entidad relacional, tales como el uso de la clave de identificación del estudiante de almacenamiento, y para almacenar el nombre y la edad como el nombre del campo y la edad. En el mismo campo, se recomienda sustituir el almacén de datos de hash de cadena.

// 添加key-filed-value对
hset key field value
// 批量添加
mhset key filed1 value1 field2 value2 ...
// 获取key-field的值
hget key field
// 批量获取key-field的值
hmget key field1 field2...
// 查看key的field数
hlen key
// 获取到key的所有field和值
hkeys key
// 获取到key的所有field和值
hgetall key
// 批量获取key的field
hmget key field1 field2 ...

Los comandos básicos 4.Set

Una colección de populares relación de amigos para lograr amigo en común y los pulgares arriba al número de peso y otros (debido a la estructura en sí sobre la base de picadillo logrado con la función de énfasis).

// 在集合中添加元素
sadd key value1 value2 ...
// 获取集合中元素的个数
scard key
// 查看集合1中相对于集合1的差集
sdiff key1 key2
// 查看集合1与2的交集
sinter key1 key2
// 查看集合1与2的并集
sunion key1 key2
// 查看member是否为key的元素
sismember key member
// 获取key的所有元素
smembers key
// smove key1 key2 member
将key1中的member移动到key2中
// spop key
移除并获取key的随机元素
// srem key member1 member2 ...

5.zset comandos básicos

conjunto ordenado se utiliza a menudo para lograr la clasificación en tiempo real, clasificaciones y por lo tanto necesita una fuerte demanda de pedidos en tiempo real.

// 在有序集合中添加多个带权重的元素(或修改)
zadd key score1 value1 score2 value2 ...
// 获取集合中的元素个数
zcard key
// 获取集合中制定权重范围的元素个数
zcount key score1 score2
// 增量递增集合中某个元素的权重
zincrby key increment value
// 以权重为排序返回特定权重区间的值和对应的权重
zrangebyscore key score0 score1 withscores
// 查询特定元素的排名(通过权重排序)
zrank key value
// 删除集合中指定元素
zrem key value0 value1 ...
// zrembyscore key score0 score1
删除指定权重区间的元素
// 查询指定权重区间的元素和权重「升序」 
zrevrange key score0 score1 withscores
// 查看指定元素的排名「升序」
zrevrank key value
// 查询指定成员的权重
zscore key value
// 区两个集合的并集并且存放在第三个集合中
zunionstore key3 2 key1 key2

II. Resumen de los tipos de datos para lograr

1.String, lista, hachís, conjunto, zConfigurar estructura de datos subyacente

  1. Sobre la base de la matriz de bytes cadena subyacente (modificaciones de paradigma longitud T pueden ser inicializados a un byte o corto, para ahorrar espacio), el tamaño de las cuales es variable cadena, similar al Java ArrayList
  2. La lista de abajo es una lista doblemente enlazada, similar en Java ListaEnlazada
  3. + Lista enlazada resumen subyacente es una matriz, utilizando el método para resolver el conflicto de fijación, similar a la Java HashMap
  4. resumen subyacente se establece, el valor seleccionado es el hash de la clave, por lo que no se puede repetir
  5. ZConfigurar tabla de saltos inferior que, cuando los datos son menos de 128, la lista se almacena mediante la compresión

2.string expansión de las operaciones

serie se asigna una capacidad máxima cuando la creación de la capacidad, cuando la capacidad de corriente mayor que el número len, operará para la expansión:

  1. Cuando el tamaño de la cadena <1 MB, cadaexpansión multiplicada
  2. Cuando el tamaño de la cadena> = 1 MB, cadaCon la expansión de 1 MB incrementos, el máximo no puede exceder 512M
    (Para ahorrar espacio, el tamaño de la cadena se utilizará no se almacenan de forma simultánea en diferentes formatos)

método sujetador 3.hash, la repetición progresiva, bis tabla hash

hash del diseño es muy inteligente, es en la expansión, a diferencia de HashMap como la cantidad total de repetición, todos del índice y re-calcular el valor hash de los nuevos valores de índice en la nueva matriz, perorepetición progresiva objetivo de lograr la optimización del rendimiento: la presencia de dos estructura de hash haashtable, uno viejo y uno nuevo. Cuando se produce la expansión, la primera parte de la nueva repetición de la tabla hash, mientras que el resto permanece en la antigua tabla hash, los datos restantes serán transferidos en la operación después de que el temporizador o volver gradualmente transferido a la nueva almohadilla mesa.

4.zset ¿Por qué una tabla de saltos como la implementación subyacente

Debido zConfigurar debe garantizar ordenada, entonces hay dos opciones, la primera es una matriz ordenada, este esquema puede hacer una dicotomía insertado ordenada, pero teniendo en cuenta el tamaño de la expansión dinámica requerida, la matriz no puede ser utilizado, el segundo especie es el uso de una lista ordenada vinculado, expansión dinámica del tamaño, pero no puede encontrar rápidamente el punto de inserción; se emplea la tabla tercer salto,Es una matriz ordenada de unirse a encontrar de forma rápida y lista de ventajas como el punto de la expansión dinámica de inserción, para lograr O (log n) Tiempo de complejidad con el fin de insertar los datos y se dejó.

TIPS: el número de elementos es de menos de 128 zConfigurar cuando se utiliza la compresión como la lista de estructura de datos subyacente.

Publicados 309 artículos originales · ganado elogios 205 · Vistas de 300.000 +

Supongo que te gusta

Origin blog.csdn.net/pbrlovejava/article/details/103851572
Recomendado
Clasificación