Redis不同数据类型下的基础查询命令

本文详细介绍了Redis中String、List、Hash、Set和Sorted Set数据类型的基础查询命令,包括SET/GET、LPUSH/RPOP、HSET/HGET、SADD/SMEMBERS以及ZADD/ZRANGE等,帮助理解如何在不同数据类型下操作Redis。
摘要由CSDN通过智能技术生成

目录

一、String数据类型

1. SET/GET/APPEND/STRLEN命令

2. INCR/DECR/INCRBY/DECRBY命令

3.GETSET命令

4.SETEX命令

5.SETNX 

6.MSET/MGET/MSETNX 

二、List数据类型

1.LPUSH/LPUSHX/LRANGE命令

2.LPOP/LLEN命令

3.LREM/LSET/LINDEX/LTRIM命令

4.LINSERT命令

5.RPUSH/RPUSHX/RPOP/RPOPLPUSH命令

三、Hash数据类型(散列类型) 

1.HSET/HGET/HDEL/HEXISTS/HLEN/HSETNX命令

2.HINCRBY 

3.HGETALL/HKEYS/HVALS/HMGET/HMSET命令

四、set数据类型(无序集合)

1.SADD/SMEMBERS/SCARD/SISMEMVER命令

2.SPOP/SREM/SRANDMEMBER/SMOVE命令

五、Sorted Set数据类型(zset、有序集合)

1.ZADD/ZCARD/ZCOUNT/ZREM/ZINCRBY/ZSCORE/ZRANGE/ZRANKM命令

2.ZRANGEBYSCORE/ZREMRANGEBYRANK/ZREMRANGEBYSCORE命令

3.ZREVRANGE/ ZREVRANGEBYSCORE/ ZREVRANK命令


一、String数据类型

String是Redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储人了数据类型,比如数字、图片、序列化对象等

1. SET/GET/APPEND/STRLEN命令

PS:APPEND
APPEND key value追加键值,并返回追加后的长度(若键不存在,则相当于创建)

exists home
#判断该键是否存在,存在返回1,否则返回0

append home "cat"
#该键并不存在,因此append命令返回当前value的长度

append home "dog"
#该键已经存在,因此返回追加后的value的长度

get home
#通过get命令获取该键,以判断append的结果

2. INCR/DECR/INCRBY/DECRBY命令

INCR key:key值递增加1(key值必须为整数)
DECR key:key值递减1(key值必须为整数)

3.GETSET命令

GETSET key value:获取key值并返回,同时给key设置新值
redis 127.0.0.1:6379> incr mycounter      #将计数器的值原子性的递增1
(integer) 1
redis 127.0.0.1:6379> getset mycounter 0  #在获取计数器原有值的同时,并将其设置为新值,这两个操作原子性的方式同时完成。
redis 127.0.0.1:6379> get mycounter       #查看设置后的结果。
"0" 

4.SETEX命令

setex key seconds value:设置指定key的过期时间为seconds
127.0.0.1:6379> setex mykey 15 "hello"  #设置指定Key的过期时间为15秒。
OK
127.0.0.1:6379> ttl mykey  #通过tt1命令查看指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期。
(integer) 4
127.0.0.1:6379> get mykey  #获取已过期的Key将返回nil
(nil)
127.0.0.1:6379> ttl mykey  #该ttl命令的返回值显示,该Key已经过期。
(integer) -2

5.SETNX 

SETNX key value:不存在键的话执行set操作,存在的话不执行

6.MSET/MGET/MSETNX 

MSET key value [key value …]:批量设置键-值对
MGET key [key …]:批量获取键值对
MSETNX key value [key value …]:批量设置键-值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0
127.0.0.1:6379> mset a10 "hello" a11 "world"  #批量设置了a10和a11两个键。
OK
127.0.0.1:6379> mget a10 a11   #批量获取了key1和key2两个键的值。
1) "hello"
2) "world"
127.0.0.1:6379> msetnx a12 "zhang" a13 "san"   #批量设置了key3和key4两个键,因为之前他们并不存在,所以msetnx命令执行成功并返回1。
(integer) 1
127.0.0.1:6379> mget a12 a13
1) "zhang"
2) "san"
127.0.0.1:6379> msetnx a12 "li" a13 "si"  #批量设置了key3和key4两个键,但是key3和key4已经存在,所以msetnx命令执行失败并返回0。
(integer) 0
127.0.0.1:6379> mget a12 a13
1) "zhang"
2) "san"
127.0.0.1:6379> msetnxa3 "li" a15 "si"  #批量设置了key3和key5两个键,但是key3已经存在,所以msetnx命令执行失败并返回0。
(integer) 0
127.0.0.1:6379> mget a13 a15    #批量获取key3和key5,由于key5没有设置成功,所以返回nil
1) "zhang"
2) (nil)

二、List数据类型

列表的元素类型为String,按照插入顺序完成,在列表的头部和尾部添加元素

1.LPUSH/LPUSHX/LRANGE命令

LPUSH key value [value …]在头部(左侧)依次插入列表元素 
LPUSHX key value:键必须存在才能执行,在头部插入元素值并返回并返回列表元素数量
LRANGE key start stop:取从位置索引start到位置索引stop的所有元素(所以以0开始
127.0.0.1:6379> lpush mykey a b c d  #mykey键并不存在,该命令会创建该键及与其关联的List,之后在将参数中的values从左到右依次插入。
(integer) 4
127.0.0.1:6379> lrange mykey 0 2  #取从位置0开始到位置2结束的3个元素。
1) "d"
2) "c"
3) "b"
127.0.0.1:6379> lrange mykey 0 -1  #取链表中的全部元素,其中0表示第一个元素,-1表示最后一一个元素。
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> lpushx mykey2 e  #mykey2键此时并不存在,因此lpushx命令将不会进行任何操作,其返回值为0。
(integer) 0
127.0.0.1:6379> lrange mykey2 0 -1  #可以看到mykey2没有关联任何List Value。
(empty list or set)
127.0.0.1:6379> lpushx mykey e  #mykey键此时已经存在,所以lpushx命令插入成功,并返回链表中当前元素的数量。
(integer) 5
127.0.0.1:6379> lrange mykey 0 0   #获取该键的List Value的头部元素。
1) "e"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值