Redis的数据类型

Redis的五种基本数据类型

Redis是key-value型的数据库,有五种基本的数据类型,分别是String,Hash,List,Set,Zset;
key都是字符串类型的,数据类型对应的是value

String类型:

最基本的key-value

#添加,修改数据  key相同就是修改
set key value

#根据key获取数据
get key

#根据key删除数据
del key

#判断性添加数据,如果数据的key存在就添加失败
setnx key value

#一次添加多个数据
mset key1 value1 key2 value2...

#一次获取多个数据
mget key1 key2 key3...

#获取该value的长度
strlen key...

#如果原始信息存在就加上,不存在就新建
append key value

#对该key的value值递增+1
incr key

#对该key的value值指定加多少
incrby key increment

#对该key的value值-1
decr key

#对该key的value值指定减多少
decrby key increment

#设置该数据的过期时间,单位:秒
setex key seconds value

#设置该数据的过期时间,单位:毫秒
psetex key milliseconds value

hash类型 :

key – field value类型,其实就是key-map类型,field就是map的key

#添加或者修改数据
hset key field value

#根据key获取数据,获取的是value值
hget key field

#获取该key的所有数据,获取的是那个map
hget key

#判断性添加数据,如果该数据的key已经存在,就添加失败
hsetnx key field value

#删除数据
hdel key field1 field2...

#一次添加多个数据
hmset key field1 value1 field2 value2 field3 value3...

#一次获取多个数据
hmget key field1 fiedld2...

#获取该key对应的map大小,就是map中有几个键值对
hlen key

#获取map中的所有的key
hkeys key

#获取map中所有的value
hvals key

#设定指定的value增加指定范围的值
hincrby key field increment

#也是增加指定范围的值
hincrbyfloat key field increment

list类型:

key-list,list类型具有索引的概念,有索引概念

#从左边添加数据
lpush key value1 value2...

#从右边添加数据
rpush key value1 value2...

#指定位置获取数据,start是开始的索引,stop是结束索引,0-1的话就是取出全部数据,从左到右数
lrange key start stop

#根据索引获取数据
lindex key index

#获取该key对应的list长度
llen key

#从左边开始获取并移除数据,只会取一个
lpop key

#从右边开始获取并移除数据,只会取一个
rpop key

#删除指定数据多少个 count是个数,比如list中有5个b,我可以只删2个b,还有三个b
lrem key count value

#获取数据,指定时间内没拿到,就返回空,下面两个都是这个功能,分左右的区别
blpop key1 [key2] timeout
brpop key1 [key2] timeout

#取出source中的数据放到destination中
brpoplpush source destination timeout

set类型

key–set类型,set类型的value值不能重复,而且是无序的

#添加数据  member就是value,我反正是这么理解的...
sadd key member1 member

#获取全部数据根据key
smembers key 

#删除数据
srem key member1 member2

#获取集合数据总量
scard key

#判断集合中是否包含指定数据
sismember key member

#随机获取集合中指定数量的数据,就是从里面随便挑count个
srandmember key count

#随机获取集合中数据并将该数据移出集合,跟上面的区别就是会删除
spop key count

#求两个集合的交、并、差集 
sinter key1 key2 … 
sunion key1 key2 …
sdiff key1 key2 …

#求两个集合的交、并、差集并存储到指定集合中
sinterstore destination key1 key2 …
sunionstore destination key1 key2 …
sdiffstore destination key1 key2 …

#将指定数据从原始集合中移动到目标集合中
smove source destination member

还有一个zset也就是sorted set,与set的区别就是他是有序的,听说用的少就不列举了

当时学习的时候脑子秀逗了,很久没有转过圈来。所以用可视化工具看了一下他们在redis中到底是怎么存的,可视化工具是RedisDesktop

String类型,左边框的testString是key,右边的s1是value
String类型
Hash类型:能很清晰的看到他是key-map类型的。适合存对象
hash类型
List类型:list类型的value可以重复
在这里插入图片描述

Set类型:value不能重复,而且最关键的他是无序的,我存的时候是1234这样的顺序
在这里插入图片描述

总结

redis的五种基本类型的命令都差不多,但是list类型可以从左从右添加数据,set可以求交集,并集,差集,对于操作redis存取数据的命令不用去记,用java的代码去操作,比如Jedis,SpringData Redis,Lettuce,并且spring中对这些进行了高度的封装

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis支持多种数据类型,包括string、hash、list、set和sorted set等。其中,string是最基本、最简单的数据类型,用于存储字符串。 Hash是用于存储键值对的数据结构,其中的value只能存储字符串,不允许存储其他数据类型,也不存在嵌套现象。每个hash可以存储232 - 1个键值对,并可以灵活添加或删除对象属性。但需要注意的是,hash类型并不适合存储大量对象,也不应该将hash作为对象列表使用,因为遍历整体数据的效率可能会较低。 除了string和hash类型,Redis还支持list、set和sorted set等数据类型。List是一个有序的字符串列表,可以进行插入、删除和查找等操作。Set是一个无序的字符串集合,可以进行元素的添加、删除和查找操作,并且不允许重复元素的存在。Sorted Set是一个有序的字符串集合,每个元素都有一个对应的score,可以根据score进行排序和范围查找。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Redis 数据类型](https://blog.csdn.net/weixin_52851967/article/details/122670564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值