Redis的5种数据类型以及简单的增删改查

在Redis中,有5种数据类型,分别是String、List、Hash、Set、Zset。

Redis在存储数据类型时是使用键值对的方式进行存储的,key就是对应的数据类型的对象的名字,就如java中的变量名,由用户(程序员)自己定义,value就是变量实际存储的内容,如String存储的就是字符串,List存储的就是一个列表,Hash存储的就是一个Hash表等。5种类型中最常见也最常用的是String类型,其次就是List类型,其他3种用到的不是太多,简单了解一下即可,当然某些项目中可能会用到。5种类型的存储方式通过命令去区分,默认就是String类型,L-前缀的一般是操作lsit列表的,S-前缀的一般是操作Set的,Z-前缀的一般是操作Zset的,H-前缀的一般是操作Hash的。

一、String类型的常用操作命令及作用

命令作用
set [key] [value]新增一条
mset [key1] [value1] [key2] [value2] [key3] [value3] [key...] [value...]批量新增

setrange [key] [startindex] [str]

从起始下标开始替换为str
setex [key] [time] [value] 设置过期时间(set with expire)
setnx [key] [value]没有再创建(set if not exist)在分布式锁中常使用
msetnx原子化操作
incr xx(字段)incrby xx(步长)自增
decr xx(字段)decrby xx(步长)自减
get [key]
mget [key1] [key2] [key3] [key...]批量获取
get *获取所有的key值
keys *获取所有的key值
getrange [key] [startindex] [endindex]按照下标(闭区间)
set [key] [value]
getset [key] [value]先get,如果存在再set

二、List类型的常用操作命令及作用

命令作用
lpush [key] [value1]
lrange [key] [startindex] [endindex]
rpush [key] [value1]
rinsert [key] [before,after] [value1] [value2]将value2插入到value1的前(后)面
lpop [key] [value1]
lrem [key] [value]移除
lrange
lindex [key]  [mount] [startindex]返回列表中对应起始下标开始一定数量的值
llen [key]返回列表的长度
rpoplpush [sourcelist] [destinationlist]移除source中最后一个元素放入另一个destination列表,没有就创建
lset [key] [index] [value]修改列表中下标为index的值为value,首先保证list以及index存在,不存在就报错

三、Hash类型的常用操作命令及作用:

Hash是一种Map集合,在存储Hash类型的时候,key值是Hash名,value中包含Hash的内容即Hash中的键值对。Hash更适合对象的存储。

命令作用
增/改hset [key] [value1-field] [value1-value]增加

hset [key] [value1-field] [value1-value] [value2-field] [value2-value] [value3-field] [value3-value] [value...-field] [value...-value] ...

批量增加
hincrby [key] [value-field] [1,-1]自增或自减
hget [key] [value-field]按照hash名和key值查找
hmget [key] [value-field1] [value-field2] [value-field3] ...
hgetall [key]获取所有
hkeys [key]获取所有key值
hvalues [key]获取所有value值
hlen [key]获取当前Hash中键值对的长度(数量)
hexists [key] [value-filed1]判断Hash中制定字段是否存在

hdel [key] [value-filed]

四、Set类型的常用操作命令及作用:

Set是无序的无重复集合。

命令作用
sadd [key] [value1]
smembers [key]
sismember [key] [value]查看value是否存在于名为[key]的set中
srandmember [key] [amount]随机取出[amount]个元素
scard [key]获取名为[key]的元素的个数
srem [key] [value1]删除
spop [key]随机删除
smove [key1] [key2] [value1]

移动[value1]元素从[key1]到[key2]

sdiff [key1] [key2]查找key1和key2的差集
sinter [key1] [key2]查找key1和key2的交集
sunion [key1] [key2]查找key1和key2的并集

set中交集的应用场景举例:社交平台的共同关注,共同喜欢,就可以通过这样的交集求出。

五、Zset类型的常用操作命令及作用:

Zset是有序的无重复集合。它相比Set来说增加了一个参数score,用来进行排序比较。

命令作用
zadd [key] [score] [value1]
zrange [key] [min] [max]区间内升序排列(min必须比max小)

zrevrange [key] [score1] [score2]

倒序排列
acard [key]获取有序集合中的个数
zram [key] [value1]删除名为[key]的value1

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

肆〇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值