Redis数据类型String、Hash和list的详细命令操作

1、 string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令
#在Shell命令行启动Redis客户端程序
在这里插入图片描述

Hash:
#给键值为myhash的键设置字段为field1,值为stephen。
在这里插入图片描述

#获取键值为myhash,字段为field1的值。
在这里插入图片描述

#myhash键中不存在field2字段,因此返回nil。
在这里插入图片描述

#给myhash关联的Hashes值添加一个新的字段field2,其值为liu。
在这里插入图片描述

#获取myhash键的字段数量。
在这里插入图片描述

#判断myhash键中是否存在字段名为field1的字段,由于存在,返回值为1。
在这里插入图片描述

#删除myhash键中字段名为field1的字段,删除成功返回1。
在这里插入图片描述

#判断myhash键中是否存在field1字段,由于上一条命令已经将其删除,因为返回0。
在这里插入图片描述

#通过hsetnx命令给myhash添加新字段field1,其值为stephen,因为该字段已经被删除,所以该命令添
加成功并返回1。
在这里插入图片描述

#由于myhash的field1字段已经通过上一条命令添加成功,因为本条命令不做任何操作后返回0。
在这里插入图片描述

  1. HINCRBY:
    #删除该键,便于后面示例的测试。
    在这里插入图片描述

#准备测试数据,该myhash的field字段设定值1。
在这里插入图片描述

#给myhash的field字段的值加1,返回加后的结果。
在这里插入图片描述

#给myhash的field字段的值加-1,返回加后的结果。
在这里插入图片描述

#给myhash的field字段的值加-10,返回加后的结果。
在这里插入图片描述

  1. HGETALL/HKEYS/HVALS/HMGET/HMSET:
    #删除该键,便于后面示例测试。
    在这里插入图片描述

#为该键myhash,一次性设置多个字段,分别是field1 = “hello”, field2 = “world”。
在这里插入图片描述

#获取myhash键的多个字段,其中field3并不存在,因为在返回结果中与该字段对应的值为nil。
在这里插入图片描述

#返回myhash键的所有字段及其值,从结果中可以看出,他们是逐对列出的。
在这里插入图片描述

#仅获取myhash键中所有字段的名字。
在这里插入图片描述

#仅获取myhash键中所有字段的值。
在这里插入图片描述

  1. LPUSH/LPUSHX/LRANGE:
    在这里插入图片描述

#mykey键并不存在,该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入。
在这里插入图片描述

#取从位置0开始到位置2结束的3个元素。
在这里插入图片描述

#取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素。
在这里插入图片描述

#mykey2键此时并不存在,因此该命令将不会进行任何操作,其返回值为0。

在这里插入图片描述

#可以看到mykey2没有关联任何List Value。
在这里插入图片描述

#mykey键此时已经存在,所以该命令插入成功,并返回链表中当前元素的数量。
在这里插入图片描述

#获取该键的List Value的头部元素。
在这里插入图片描述

  1. LPOP/LLEN:
    在这里插入图片描述
    在这里插入图片描述

#在执行lpop命令两次后,链表头部的两个元素已经被弹出,此时链表中元素的数量是2
在这里插入图片描述

  1. LREM/LSET/LINDEX/LTRIM:
    #为后面的示例准备测试数据。
    在这里插入图片描述

#从头部(left)向尾部(right)变量链表,删除2个值等于a的元素,返回值为实际删除的数量。
在这里插入图片描述

#看出删除后链表中的全部元素。
在这里插入图片描述

#获取索引值为1(头部的第二个元素)的元素值。
在这里插入图片描述

#将索引值为1(头部的第二个元素)的元素值设置为新值e。
在这里插入图片描述

#查看是否设置成功。
在这里插入图片描述

#索引值6超过了链表中元素的数量,该命令返回nil。
在这里插入图片描述

#设置的索引值6超过了链表中元素的数量,设置失败,该命令返回错误信息。
在这里插入图片描述

#仅保留索引值0到2之间的3个元素,注意第0个和第2个元素均被保留。
在这里插入图片描述

#查看trim后的结果。
在这里插入图片描述

  1. LINSERT:
    #删除该键便于后面的测试。
    在这里插入图片描述

#为后面的示例准备测试数据。
在这里插入图片描述

#在a的前面插入新元素a1。
在这里插入图片描述

#查看是否插入成功,从结果看已经插入。注意lindex的index值是0-based。
在这里插入图片描述

#在e的后面插入新元素e2,从返回结果看已经插入成功。
在这里插入图片描述

#再次查看是否插入成功。
在这里插入图片描述

#在不存在的元素之前或之后插入新元素,该命令操作失败,并返回-1。
在这里插入图片描述

#为不存在的Key插入新元素,该命令操作失败,返回0。
在这里插入图片描述

  1. RPUSH/RPUSHX/RPOP/RPOPLPUSH:
    #删除该键,以便于后面的测试。
    在这里插入图片描述

#从链表的尾部插入参数中给出的values,插入顺序是从左到右依次插入。
在这里插入图片描述

#通过lrange的可以获悉rpush在插入多值时的插入顺序。
在这里插入图片描述

String:

  1. SET/GET/APPEND/STRLEN:
    在这里插入图片描述

#该键并不存在,因此append命令返回当前Value的长度。
在这里插入图片描述

#该键已经存在,因此返回追加后Value的长度。
在这里插入图片描述

#通过get命令获取该键,以判断append的结果。
在这里插入图片描述

#通过set命令为键设置新值,并覆盖原有值。

在这里插入图片描述
在这里插入图片描述

#获取指定Key的字符长度,等效于C库中strlen函数。
在这里插入图片描述

  1. INCR/DECR/INCRBY/DECRBY:
    #设置Key的值为20
    在这里插入图片描述

#该Key的值递增1
在这里插入图片描述

#该Key的值递减1
在这里插入图片描述

#删除已有键。
在这里插入图片描述

#对空值执行递减操作,其原值被设定为0,递减后的值为-1
在这里插入图片描述
在这里插入图片描述

#对空值执行递增操作,其原值被设定为0,递增后的值为1
在这里插入图片描述

#将该键的Value设置为不能转换为整型的普通字符串。
在这里插入图片描述

#在该键上再次执行递增操作时,Redis将报告错误信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. GETSET:
    #将计数器的值原子性的递增1
    在这里插入图片描述

#在取计数器原有值的同时,并将其设置为新值,这两个操作原子性的同时完成。
在这里插入图片描述

#查看设置后的结果。
在这里插入图片描述

#设置指定Key的过期时间为10秒。
在这里插入图片描述

#通过ttl命令查看一下指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期,-2表示键不存在。
在这里插入图片描述

#在该键的存活期内我们仍然可以获取到它的Value。
在这里插入图片描述

#获取已过期的Key将返回nil。
在这里插入图片描述

#该键并不存在,因此该命令执行成功。
在这里插入图片描述

#该键已经存在,因此本次设置没有产生任何效果。
在这里插入图片描述

#从结果可以看出,返回的值仍为第一次设置的值。
在这里插入图片描述

#设定初始值。
在这里插入图片描述

#从第六个字节开始替换2个字节(dd只有2个字节)
在这里插入图片描述

#查看替换后的值。
在这里插入图片描述

#offset已经超过该Key原有值的长度了,该命令将会在末尾补0。
在这里插入图片描述

#查看补0后替换的结果。
在这里插入图片描述

#删除该Key。
在这里插入图片描述

#替换空值。
在这里插入图片描述

#查看替换空值后的结果。
在这里插入图片描述

#设置新值。

在这里插入图片描述

#截取该键的Value,从第一个字节开始,到第二个字节结束。
在这里插入图片描述

#20已经超过Value的总长度,因此将截取第一个字节后面的所有字节。
在这里插入图片描述

  1. SETBIT/GETBIT:
    在这里插入图片描述

#设置从0开始计算的第七位BIT值为1,返回原有BIT值0
在这里插入图片描述

#获取设置的结果,二进制的0000 0001的十六进制值为0x01
在这里插入图片描述

#设置从0开始计算的第六位BIT值为1,返回原有BIT值0
在这里插入图片描述

#删除该键,以便于下面的测试验证。

#获取设置的结果,二进制的0000 0011的十六进制值为0x03
在这里插入图片描述

#返回了指定Offset的BIT值。
在这里插入图片描述

#Offset已经超出了value的长度,因此返回0。
在这里插入图片描述

  1. MSET/MGET/MSETNX:
    #批量设置了key1和key2两个键。
    在这里插入图片描述

#批量获取了key1和key2两个键的值。
在这里插入图片描述

#批量设置了key3和key4两个键,因为之前他们并不存在,所以该命令执行成功并返回1。
在这里插入图片描述
在这里插入图片描述

#批量设置了key3和key5两个键,但是key3已经存在,所以该命令执行失败并返回0。
在这里插入图片描述

#批量获取key3和key5,由于key5没有设置成功,所以返回nil。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值