API de operación de clave Redis súper detallada, ¿qué? ¡No puedo leerlo! Vienes a martillarme

  • j3_liuliang
  • La API de Redis de uso común es la serie de inicio del escenario de la aplicación (clave), si lo encuentra útil, puede seguir al blogger y actualizarlo de vez en cuando.

Uno, clave (clave)

1.1 TIPO (tipo)

El comando Redis Type se utiliza para devolver el tipo de valor almacenado en la clave.

语法

127.0.0.1:6379> TYPE KEY_NAME 

可用版本:> = 1.0.0

返回值

Devuelve el tipo de datos de la clave, los tipos de datos son:

  • ninguno (la clave no existe)
  • cadena (cadena)
  • lista (lista)
  • conjunto
  • zset (conjunto ordenado)
  • hash (tabla hash)

Caso:

127.0.0.1:6379> set stringkey stringvalue		#设置String类型
OK
127.0.0.1:6379> type stringkey					#返回String
string
127.0.0.1:6379> lpush listkey list01 list02		#设置list类型
(integer) 2
127.0.0.1:6379> type listkey					#返回list
list
127.0.0.1:6379> sadd setkey setvalue			#设置set类型
(integer) 1
127.0.0.1:6379> type setkey						#返回set
set
127.0.0.1:6379> zadd zsetkey 1 "liuliang"		#设置zset类型
(integer) 1
127.0.0.1:6379> type zsetkey					#返回zset
zset
127.0.0.1:6379> hset hashkey name liuliang		#设置hash类型
(integer) 1
127.0.0.1:6379> type hashkey					#返回hash
hash

1.2 PEXPIREAT (pexpireat)

El comando Redis PEXPIREAT se usa para establecer el tiempo de vencimiento de la clave 亿毫秒记. Una vez que caduque la clave, ya no estará disponible.

语法

127.0.0.1:6379> PEXPIREAT KEY_NAME TIME_IN_MILLISECONDS_IN_UNIX_TIMESTAMP

可以版本:> = 1.0.0

返回值:Devuelve 1 si se configuró correctamente. Cuando la clave no existe o no se puede establecer el tiempo de vencimiento para la clave (por ejemplo, intenta actualizar el tiempo de vencimiento de la clave en una versión de Redis inferior a 2.1.3), devuelva 0.

案例

127.0.0.1:6379> set k3 v3						#创建key 并赋值
OK
127.0.0.1:6379> pexpireat k3 5000000000000		#设置过期时间,大于等于这个输才行1000000000000
(integer) 1
127.0.0.1:6379> ttl k3							#查看剩余过期时间
(integer) 3398395525							#单位秒
127.0.0.1:6379> ttl k3
(integer) 3398395522
127.0.0.1:6379> 

1.3 RENOMBRAR (renombrar)

El comando RENAME de Redis se utiliza para modificar el nombre de la clave.

语法

127.0.0.1:6379> RENAME OLD_KEY_NAME NEW_KEY_NAME

可以版本:> = 1.0.0

返回值:

Indica OK cuando el nombre se cambia correctamente y devuelve un error cuando falla.

Cuando OLD_KEY_NAME y NEW_KEY_NAME son iguales, o OLD_KEY_NAME no existe, se devuelve un error. Cuando NEW_KEY_NAME ya existe, el comando RENAME sobrescribirá el valor anterior.

案例

###################   第一种情况:重命名的新key不存在   ###################

127.0.0.1:6379> set j3-liuliang 18				#设置key并赋值
OK
127.0.0.1:6379> rename j3-liuliang liuliang		#重命名key,新key不存在
OK
127.0.0.1:6379> exists j3-liuliang				#exists判断key是否存在,0不存在,1存在
(integer) 0
127.0.0.1:6379> exists liuliang
(integer) 1

###################   第二种情况:重命名的新key存在   ###################

127.0.0.1:6379> set xiaozhang 28				#设置key并赋值
OK
127.0.0.1:6379> rename liuliang xiaozhang		#重命名key(liuliang),新key(xiaozhang)存在
OK												#重命名成功
127.0.0.1:6379> exists liuliang					#查看key是否存在
(integer) 0
127.0.0.1:6379> exists xiaozhang
(integer) 1
127.0.0.1:6379> get xiaozhang					#可以发现,如果重命名的key存在,则会覆盖新key的值
"18"

1.4 PERSISTAR (persistir)

El comando PERSIST de Redis se utiliza para eliminar el tiempo de vencimiento de una clave determinada para que la clave nunca caduque.

语法

127.0.0.1:6379> PERSIST KEY_NAME

可以版本:> = 2.2.0

返回值:Cuando el tiempo de vencimiento se elimina con éxito, se devuelve 1. Si la clave no existe o la clave no tiene un tiempo de vencimiento establecido, se devuelve 0.

案例

127.0.0.1:6379> set j3-liuliang 18			#设置key并赋值
OK
127.0.0.1:6379> expire j3-liuliang 100		#设置过期时间
(integer) 1
127.0.0.1:6379> ttl j3-liuliang				#查看剩余过期时间
(integer) 98
127.0.0.1:6379> persist j3-liuliang			#移除key的过期时间
(integer) 1
127.0.0.1:6379> ttl j3-liuliang				#查看key状态,-1永久有效
(integer) -1

1.5 MOVER (mover)

El comando MOVE de Redis se utiliza para mover la clave de la base de datos actual a la base de datos dada.

语法

127.0.0.1:6379> MOVE KEY_NAME DESTINATION_DATABASE

可以版本:> = 1.0.0

返回值:Devuelve 1 si el movimiento tiene éxito y 0 si falla.

案例

###################   第一种情况:key存在于当前数据库中(移动成功,当前库不存在key目标库存在key)   ###################
127.0.0.1:6379> select 0					#切换数据库,默认就是 0 号数据库
OK
127.0.0.1:6379> set j3-liuliang 18			#设置key并复制
OK
127.0.0.1:6379> move j3-liuliang 1			#移动key到 1 号数据库
(integer) 1
127.0.0.1:6379> exists j3-liuliang			#查看当前数据库是否存在key
(integer) 0
127.0.0.1:6379> select 1					#切换数据库
OK
127.0.0.1:6379[1]> exists j3-liuliang		#查看当前数据库是否存在key
(integer) 1
127.0.0.1:6379[1]> 

###################   第二种情况:key不存在于当前数据库中(移动失败,因为key根本不存在)   #################
127.0.0.1:6379> flushall					#清空所有数据库数据 0-15
OK
127.0.0.1:6379> exists j3-liuliang			#查看当前数据库是否存在key
(integer) 0
127.0.0.1:6379> move j3-liuliang 1			#将一个不存在的key移动到 1 号数据库
(integer) 0									#返回 0 说明已经失败了
127.0.0.1:6379> select 1					#切换数据库
OK
127.0.0.1:6379[1]> exists j3-liuliang		#查看当前数据库是否存在key
(integer) 0									#显然不存在
127.0.0.1:6379[1]> 

###################   第三种情况:当源数据库和目标数据库有相同的 key 时(结论移动失败,不做任何变化)   ####
127.0.0.1:6379[1]> flushall					#清空所有数据库数据 0-15
OK
127.0.0.1:6379[1]> set j3-liuliang 28		#在当前数据库设置一个key
OK
127.0.0.1:6379[1]> select 0					#切换数据库
OK
127.0.0.1:6379> set j3-liuliang 18			#设置和上一个数据库中相同的一个key,值不要一样,便于区分
OK
127.0.0.1:6379> move j3-liuliang 1			#将当前数据库中key移动到上一个数据库中
(integer) 0									#发现,移动失败,说明,当两个数据库中有相同的key时,会移动失败
127.0.0.1:6379> get j3-liuliang				#获取当前数据库中key,发现没有变化
"18"
127.0.0.1:6379> select 1					#切换数据库
OK
127.0.0.1:6379[1]> get j3-liuliang			#发现也没有变化
"28"
127.0.0.1:6379[1]> 

1.6 RANDOMKEY (tecla aleatoria)

El comando Redis RANDOMKEY devuelve aleatoriamente una clave de la base de datos actual.

语法

127.0.0.1:6379> RANDOMKEY 

可以版本:> = 1.0.0

返回值:Cuando la base de datos no está vacía, se devuelve una clave. Cuando la base de datos está vacía, se devuelve nil.

案例

127.0.0.1:6379> flushall								#清空所有数据库数据
OK
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 k4 v4 k5 v5		#一次设置多个key value
OK
127.0.0.1:6379> keys *									#查看数据库说有key
1) "k4"
2) "k5"
3) "k1"
4) "k2"
5) "k3"
127.0.0.1:6379> randomkey								#随机输出一个key
"k4"
127.0.0.1:6379> randomkey
"k4"
127.0.0.1:6379> randomkey
"k4"
127.0.0.1:6379> randomkey
"k1"
127.0.0.1:6379> flushall								#情况所有数据库数据
OK
127.0.0.1:6379> randomkey								#发现输出为 nil
(nil)
127.0.0.1:6379> 

1.7 DUMP (dump)

El comando Redis DUMP se utiliza para serializar una clave determinada y devolver el valor serializado.

语法

127.0.0.1:6379> DUMP KEY_NAME

可以版本:> = 2.6.0

返回值:Si la clave no existe, se devuelve nil. De lo contrario, devuelva el valor serializado.

案例

127.0.0.1:6379> flushall					#清空所有数据库
OK
127.0.0.1:6379> set j3-liuliang 18			#设置key并赋值
OK
127.0.0.1:6379> dump j3-liuliang			#将给定的key序列化
"\x00\xc0\x12\t\x00\x9d+/\x83A\xa7'\x9a"	#key序列后的值
127.0.0.1:6379> dump not-exists-key			#序列化不存在的值
(nil)										#返回nil
127.0.0.1:6379> 

1.8 TTL (ttl)

El comando Redis TTL devuelve el tiempo de caducidad restante de la clave en segundos.

语法

127.0.0.1:6379> TTL KEY_NAME

可以版本:> = 1.0.0

返回值:

Cuando la clave no existe, se devuelve -2. Cuando la clave existe pero no se establece la vida útil restante, se devuelve -1. De lo contrario, devuelva el tiempo de supervivencia restante de la clave en milisegundos.

** Nota: ** Antes de Redis 2.8, cuando la clave no existe, o la clave no establece el tiempo de vida restante, el comando devolverá -1.

案例

127.0.0.1:6379> flushall					#清空所有数据库数据
OK
127.0.0.1:6379> ttl j3-liuliang				#判断一个不存在的key
(integer) -2
127.0.0.1:6379> set j3-liuliang 18			#设置key并赋值
OK
127.0.0.1:6379> ttl j3-liuliang				#查看存在的key但没有设置过期时间
(integer) -1
127.0.0.1:6379> expire j3-liuliang 100		#给存在的key设置过期时间
(integer) 1
127.0.0.1:6379> ttl j3-liuliang				#查看剩余过期时间(秒)
(integer) 98
127.0.0.1:6379> 

1.9 EXPIRE (expira)

El comando Redis Expire se utiliza para establecer el tiempo de expiración de la clave. Una vez que caduque la clave, ya no estará disponible.

语法

127.0.0.1:6379> Expire KEY_NAME TIME_IN_SECONDS

可以版本:> = 1.0.0

返回值:

Devuelve 1 si se configuró correctamente. Cuando la clave no existe o no se puede establecer el tiempo de vencimiento para la clave (por ejemplo, intenta actualizar el tiempo de vencimiento de la clave en una versión de Redis inferior a 2.1.3), devuelva 0.

案例

127.0.0.1:6379> flushall					#清空所有数据库数据
OK
127.0.0.1:6379> set j3-liuliang 18			#设置key并赋值
OK
127.0.0.1:6379> expire j3-liuliang 100		#给存在的key设置过期时间
(integer) 1
127.0.0.1:6379> ttl j3-liuliang				#查看剩余过期时间(秒)
(integer) 88
127.0.0.1:6379> 

En el ejemplo anterior, configuramos el tiempo de vencimiento de la clave j3-liuliang en 100 segundos, y la clave se eliminará automáticamente después de 100 segundos.

1.10 DEL(del)

El comando Redis DEL se utiliza para eliminar una clave existente. Las claves que no existen se ignorarán.

语法

127.0.0.1:6379> DEL KEY_NAME

可以版本:> = 1.0.0

返回值:El número de claves eliminadas.

案例

127.0.0.1:6379> flushall		#清空所有数据库数据
OK
127.0.0.1:6379> set k1 v1		#设置key并赋值
OK
127.0.0.1:6379> del k1			#删除key
(integer) 1						#返回删除的数量
127.0.0.1:6379> del k2			
(integer) 0						#返回删除的数量 0 说明没有改变什么,表明该值不存在
127.0.0.1:6379> 

1.11 PTTL (pttl)

Las 毫秒unidades de comando Redis PTTL devuelven el tiempo de expiración restante de la clave.

语法

127.0.0.1:6379> PTTL KEY_NAME

可以版本:> = 2.6.0

返回值:

Cuando la clave no existe, se devuelve -2. Cuando la clave existe pero no se establece la vida útil restante, se devuelve -1. De lo contrario, devuelva el tiempo de supervivencia restante de la clave en milisegundos.

** Nota: ** Antes de Redis 2.8, cuando la clave no existe, o la clave no establece el tiempo de vida restante, el comando devolverá -1.

案例

127.0.0.1:6379> flushall					#清空所有数据库数据
OK
127.0.0.1:6379> set j3-liuliang 18			#设置key并赋值
OK
127.0.0.1:6379> expire j3-liuliang 100		#设置过期时间
(integer) 1
127.0.0.1:6379> pttl j3-liuliang			#返回key的剩余时间,毫秒
(integer) 91266
127.0.0.1:6379> pttl key					#查看不存在key的剩余时间,毫秒
(integer) -2
127.0.0.1:6379> set k1 v1					#设置key并赋值
OK
127.0.0.1:6379> pttl k1						#查看没有设置过期时间的key
(integer) -1
127.0.0.1:6379> 

1.12 RENAMENX (renamenx)

El comando Redis Renamenx se utiliza para modificar el nombre de la clave cuando la nueva clave no existe.

语法

127.0.0.1:6379> RENAMENX OLD_KEY_NAME NEW_KEY_NAME

可以版本:> = 1.0.0

返回值:Cuando la modificación tiene éxito, se devuelve 1. Si NEW_KEY_NAME ya existe, devuelve 0.

案例

###################   第一种情况:newkey不存在(改名成功)   ###################
127.0.0.1:6379> flushall						#清空数据库
OK
127.0.0.1:6379> set j3-liuliang 18				#设置key并赋值
OK
127.0.0.1:6379> renamenx j3-liuliang liuliang	#将key设置新值,新值不存在
(integer) 1
127.0.0.1:6379> exists j3-liuliang				#判断老key是否还存在
(integer) 0
127.0.0.1:6379> get j3-liuliang					#判断是否还可以取到老key的值
(nil)
127.0.0.1:6379> exists liuliang					#判断新key是否存在
(integer) 1
127.0.0.1:6379> get liuliang					#获取新key的值
"18"
127.0.0.1:6379>

###################   第二种情况:newkey存在(改名失败,不做变化)   ###################
127.0.0.1:6379> flushall			#清空数据库
OK
127.0.0.1:6379> set k1 v1			#设置key并赋值
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> renamenx k1 k2		#将key设置新值,新值存在
(integer) 0							#重命名失败
127.0.0.1:6379> get k1				#没有任何变化
"v1"
127.0.0.1:6379> get k2				#没有任何变化
"v2"
127.0.0.1:6379>

1.13 EXISTE (existe)

El comando Redis EXISTS se usa para verificar si existe la clave dada.

语法

127.0.0.1:6379> EXISTS KEY_NAME

可以版本:> = 1.0.0

返回值:Si la clave existe, devuelve 1; de lo contrario, devuelve 0.

案例

127.0.0.1:6379> flushall		#清空数据库
OK
127.0.0.1:6379> exists k1		#判断key是否存在
(integer) 0						#不存在
127.0.0.1:6379> set k1 v1		#设置key并赋值
OK
127.0.0.1:6379> exists k1		#判断key是否存在
(integer) 1						#存在
127.0.0.1:6379>

1.14 EXPIREAT (expireat)

EXPIREAT es similar a EXPIRE y ambos se utilizan para establecer el tiempo de caducidad de la clave. La diferencia es que el parámetro de tiempo aceptado por el comando EXPIREAT es la marca de tiempo de UNIX.

El comando Redis Expireat se utiliza para establecer el tiempo de vencimiento de la clave en el formato de marca de tiempo UNIX. Una vez que caduque la clave, ya no estará disponible.

语法

127.0.0.1:6379> Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP

可以版本:> = 1.0.0

返回值:

Devuelve 1 si se configuró correctamente. Cuando la clave no existe o no se puede establecer el tiempo de vencimiento para la clave (por ejemplo, intenta actualizar el tiempo de vencimiento de la clave en una versión de Redis inferior a 2.1.3), devuelva 0.

案例

127.0.0.1:6379> flushall							#清空数据库
OK
127.0.0.1:6379> set j3-liuliang 18					#设置key并赋值
OK
127.0.0.1:6379> expireat j3-liuliang 1293840000		#给key设置过期时间,时间是时间戳
(integer) 1
127.0.0.1:6379> ttl j3-liuliang						#查看剩余过期时间
(integer) -2
127.0.0.1:6379> exists j3-liuliang					#查看key是否还存在
(integer) 0
127.0.0.1:6379> 

1.15 TECLAS (teclas)

El comando Redis Keys se utiliza para encontrar todas las claves que coinciden con un patrón determinado. .

语法

127.0.0.1:6379> KEYS PATTERN

可以版本:> = 1.0.0

返回值:Una lista de claves (Matriz) que se ajustan al patrón dado.

案例

127.0.0.1:6379> flushall		#清空数据库
OK
127.0.0.1:6379> set k1 v1		#创建一些key
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set m1 n1
OK
127.0.0.1:6379> set m2 n2
OK
127.0.0.1:6379> keys k*			#查找所有符合 k* 的key
1) "k1"
2) "k2"
127.0.0.1:6379> keys m*			#查找所有符合 m* 的key
1) "m2"
2) "m1"
127.0.0.1:6379> keys *			#查找所有的key
1) "m2"
2) "k1"
3) "m1"
4) "k2"
127.0.0.1:6379> 

Observaciones finales

  • Este artículo está escrito junto con los casos prácticos del sitio web chino de Redis y los blogueros, y escribirá el tipo de cadena en el próximo número
  • Debido a que los bloggers no tienen mucho conocimiento, inevitablemente habrá errores. Si encuentra un error o prejuicio, por favor deje un mensaje para señalarlo y lo corregiré.
  • Si cree que el artículo no es malo, su reenvío, intercambio, me gusta y comentarios son su mayor aliento.
  • Gracias por leer, bienvenidos y gracias por su atención.

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_40399646/article/details/108906065
Recomendado
Clasificación