Redis 五大数据类型(String、List、Hash、Set 及 Zset)

Redis 提供了五大数据类型:String、List、Hash、Set 和 Sorted Set。String 类型是二进制安全的,可用于存储任何数据。List 可按插入顺序存储字符串,并支持在两端添加元素。Hash 是键值对的集合,适用于存储对象。Set 是无序不重复元素集合,可用于跟踪唯一数据。Sorted Set 是有序集合,成员带有分数用于排序,适用于创建排行榜等应用场景。
摘要由CSDN通过智能技术生成


一、String 数据类型(字符串)

1.概述

  • String 是 redis 最基本的类型(可以理解为一个 key 对应一个 value),最大能存储 512MB 的数据
  • String 类型是二进制安全的,可以存储任何数据(比如数字、图片、序列化对象等)

2.命令示例

2.1 EXISTE、APPEND、GET、SET、STRLEN

[root@localhost ~]# redis-cli               #执行Redis客户端工具
127.0.0.1:6379> EXISTS mykey                #判断该键是否存在,存在返回1,否则返回0
(integer) 0
127.0.0.1:6379> APPEND mykey "hello"        #若该键并不存在,则创建key,存在则将内容追加,append命令返回当前Value的长度
(integer) 5
127.0.0.1:6379> APPEND mykey " world"
(integer) 11
127.0.0.1:6379> GET mykey                   #通过get命令获取该键,以判断append的结果
"hello world"
127.0.0.1:6379> SET mykey "this is mykey"   #通过set命令为键设置新值,并覆盖原有值,若为字符串需要加双引号或单引号
OK
127.0.0.1:6379> GET mykey
"this is mykey"
127.0.0.1:6379> STRLEN mykey                #获取指定Key的字符长度,等效于C库中strlen函数
(integer) 13

2.2 INCR、DECR、DEL、INCRBY、DECRBY

127.0.0.1:6379> SET mykey 10                #设置Key的值为20
OK
127.0.0.1:6379> INCR mykey                  #该Key的值递增1
(integer) 11
127.0.0.1:6379> DECR mykey                  #该Key的值递减1
(integer) 10
127.0.0.1:6379> DEL mykey                   #删除已有键
(integer) 1
127.0.0.1:6379> DECR mykey                  #对空值执行递减操作,其原值被设定为0,递减后的值为-1
(integer) -1
127.0.0.1:6379> DEL mykey
(integer) 1
127.0.0.1:6379> INCR mykey                  #对空值执行递增操作,其原值被设定为0,递增后的值为1
(integer) 1
127.0.0.1:6379> SET mykey hello             ##将该键的Value设置后,将不能转换为整型的普通字符串
OK
127.0.0.1:6379> INCR mykey
(error) ERR value is not an integer or out of range
127.0.0.1:6379> SET mykey 10
127.0.0.1:6379> INCRBY mykey 10             #指定增加的整数
(integer) 20
127.0.0.1:6379> DECRBY mykey 10             #指定减少的整数
(integer) 10
127.0.0.1:6379> GET mykey
"10"

2.3 GETSET、SETEX、TTL、SETNX

127.0.0.1:6379> INCR mycounter                  #将计数器的值原子性的递增1
(integer) 1
127.0.0.1:6379> GETSET mycounter 0              #在设置新值得同时,并返回原有值,这两个操作原子性的同时完成
"1"
127.0.0.1:6379> GET mycounter
"0"
127.0.0.1:6379> SETEX mykey 10 "hello world!"   #设置指定Key的过期时间为10秒
OK
127.0.0.1:6379> TTL mykey                       #通过ttl命令查看一下指定Key的剩余存活时间(秒数),0表示已经过期,-1(-2)表示永不过期
(integer) 8
127.0.0.1:6379> GET mykey                       #在该键的存活期内我们仍然可以获取到它的Value
"hello world!"
127.0.0.1:6379> TTL mykey                       #该ttl命令的返回值显示,该Key已经过期
(integer) -2
127.0.0.1:6379> GET mykey
(nil)
127.0.0.1:6379> DEL mykey                       #删除该键,以便于下面的测试验证
(integer) 1
127.0.0.1:6379> SETNX mykey "hello"             #该键并不存在,因此该命令执行成功,存在则不执行命令
(integer) 1
127.0.0.1:6379> SETNX mykey "world"             #该键已经存在,因此本次设置没有产生任何效果
(integer) 0
127.0.0.1:6379> GET mykey                       #从结果可以确认,返回的值仍为第一次设置的值
"hello"

2.4 SETRANGE、GETRANGE

127.0.0.1:6379> SET mykey "hello world"         #设定初始值
OK
127.0.0.1:6379> SETRANGE mykey 6 dd             #从第六个字节开始替换2个字节(dd只有2个字节)
(integer) 11
127.0.0.1:6379> GET mykey                       #查看替换后的值
"hello ddrld"
127.0.0.1:6379> SETRANGE mykey 20 dd            #offset已经超过该Key原有值的长度了,该命令将会在末尾补0
(integer) 22
127.0.0.1:6379> GET mykey                       #查看补0后替换的结果
"hello ddrld\x00\x00\x00\x00\x00\x00\x00\x00\x00dd"
127.0.0.1:6379> del mykey                       #删除该Key
(integer) 1
127.0.0.1:6379> SETRANGE mykey 2 dd             #替换空值
(integer) 4
127.0.0.1:6379> GET mykey                       #查看替换空值后的结果
"\x00\x00dd"
127.0.0.1:6379> SET mykey "0123456789"          #设置新值
OK
127.0.0.1:6379> GETRANGE mykey 1 2              #截取该键的Value,从第一个字节开始,到第二个字节结束
"12"
127.0.0.1:63
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xucf1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值