redis数据类型

redis数据类型 :

String(字符串)

string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

redis常用的操作命令 : 

01 set :用于给指定的key设置value,支持设置已存在的key

127.0.0.1:6379> set city chengdu
OK
127.0.0.1:6379> get city
"chengdu"

02 get:用于取指定key的value

127.0.0.1:6379> set city chengdu
OK
127.0.0.1:6379> get city
"chengdu"

03 setnx:用于给指定的key设置value,如果key已经存在则返回0。nx代表:not exist

127.0.0.1:6379> setnx province sichuan
(integer) 1
127.0.0.1:6379> get province
"sichuan"

04 setex:用于给指定的key设置value,并且需要指定该key的有效时间。 10秒后则返回为空

127.0.0.1:6379> setex province 5 beijing
OK
127.0.0.1:6379> get province
"beijing"
127.0.0.1:6379> get province
(nil)

05 setrange:给指定的key的值重新覆盖内容,从4指定位置,替换内容为ming,最终结果为xiaoming

127.0.0.1:6379> set name liusir
OK
127.0.0.1:6379> get name
"liusir"
127.0.0.1:6379> setrange name 3 xiansheng
(integer) 11
127.0.0.1:6379> get name
"liuxiansheng"
127.0.0.1:6379> 

 

6 mset:批量设置key对应的value值

127.0.0.1:6379> mset xingming xiaohong num 43 score 98 level A
OK
127.0.0.1:6379> mget xingming num score level
1) "xiaohong"
2) "43"
3) "98"
4) "A"

07 msetnx:批量设置key对应的value值,如果key已存在则返回0。

127.0.0.1:6379> msetnx city shanghai country longquan
(integer) 0
127.0.0.1:6379> get country
(nil)
127.0.0.1:6379> msetnx country longquan street changhong
(integer) 1
127.0.0.1:6379> mget country street
1) "longquan"
2) "changhong"

08 getset:给指定key设置新值,并且返回之前原始数据。

127.0.0.1:6379> get street
"damian"
127.0.0.1:6379> getset street linyin
"damian"

09 getrange:返回一个字符串的子字符串,相当于字符串截取,下标0是起始位置,下标3是结尾位置

127.0.0.1:6379> getrange street 0 3
"liny"
127.0.0.1:6379> get street
"linyin"

10 mget:批量获取key对应的value,按顺序展示

127.0.0.1:6379> mset xingming xiaohong num 43 score 98 level A
OK
127.0.0.1:6379> mget xingming num score level
1) "xiaohong"
2) "43"
3) "98"
4) "A"

11 incr:将指定key中存储的数字值增一,必须是数字类型,否则会返回错误信息

111.231.51.81:6379> get age 
"10" 
111.231.51.81:6379> incr age 
(integer) 11 
111.231.51.81:6379> incr age 
(integer) 12 

11 incrby:将指定key中存储的数字指定增加多少,以下指定增长10 

111.231.51.81:6379> get age 
"12" 
111.231.51.81:6379> incrby age 10 
(integer) 22

12 decr:将指定key中存储的数字值减一,必须是数字类型,否则会返回错误信息

111.231.51.81:6379> decr age 
(integer) 21 
111.231.51.81:6379> decr age 
(integer) 20 

13 decrby:将指定key中存储的数字指定减少多少,以下指定减少10 

111.231.51.81:6379> get age 
"20" 
111.231.51.81:6379> decrby age 10 
(integer) 10 

14 append:给指定的key中的值追加字符串

111.231.51.81:6379> get name 
"lisi" 
111.231.51.81:6379> append name wu 
(integer) 6 
111.231.51.81:6379> get name 
"lisiwu" 

15 strlen:返回指定key中value的长度

111.231.51.81:6379> get name 
"lisiwu" 
111.231.51.81:6379> strlen name 
(integer) 6 

哈希值设置 :

 

1. redis按照hash进行存值

    hmset key field1 value1 field2 value2 ...

 

2. redis得到hash的key中某一个field的值

    hmget key field

    注意:其中field表示你想要查询的field的值,其中field可以有多个值。

 

3. redis返回哈希表key的所有field值和所有的value值

    hgetall key

     注意:其中奇数为filed值,偶数为对应的value值。

 

4. redis返回哈希表key的所有filed的值

    hkeys key

 

5. redis返回哈希表key的所有的value值

    hvals key

 

6. redis删除哈希表key的某一个field值和对应的value值

    hdel key

 

7. redis设置key的过期时间

    expire key time | expireat key time

    注意:其中expire key time中的time表示的是秒数,expireat key time中的time表示的是unixtime的标准秒数

 

8. redis查看key的到期时间或剩余的剩余的生存时间

    ttl key

 

9. redis删除key的过期时间

    persist key

 

List列表 :

 

列表 list——基本命令

lpush

语法:lpush key value [value„]

作用:将一个或多个值 value 插入到列表 key 的表头(最左边),从左边开始加入值,从左 到右的顺序依次插入到表头

返回值:数字,新列表的长度

rpush

语法:rpush key value [value„]

作用:将一个或多个值 value 插入到列表 key 的表尾(最右边),各个 value 值按从左到右 的顺序依次插入到表尾

返回值:数字,新列表的长度

lrange

语法:lrange key start stop

作用:获取列表 key 中指定区间内的元素,0 表示列表的第一个元素,以 1 表示列表的第二个元素;

start , stop 是列表的下标值,也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒 数第二个元素,以此类推。

start ,stop 超出列表的范围不会出现错误。

返回值:指定区间的列表

lindex

语法:lindex key index

作用:获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。

0 表示列表的第一个 元素,以 1 表示列表的第二个元素;

start , stop 是列表的下标值,也可以负数的下标, -1 表示列 表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

返回值:指定下标的元素;index 不在列表范围,返回 nil

llen

语法:llen key

作用:获取列表 key 的长度 返回值:数值,列表的长度; key 不存在返回 0

lrem

语法:lrem key count value

作用:根据参数count的值,移除列表中与参数value相等的元素,

count>0 ,从列表的左侧向右开始移 除;

count<0从列表的尾部开始移除;

count=0 移除表中所有与value相等的值。

返回值:数值,移除的元素个数

lset

语法:lset key index value

作用:将列表 key 下标为 index 的元素的值设置为 value。

返回值:设置成功返回 ok ; key 不存在或者 index 超出范围返回错误信

linsert

语法:linsert key BEFORE(前)|AFTER(后) pivot value

作用:

将值value插入到列表key当中位于值pivot之前或之后的位置。

key不存在,pivot不在列表中, 不执行任何操作。

返回值:命令执行成功,返回新列表的长度。没有找到 pivot 返回 -1, key 不存在返回 0。

RPOP key

移除列表的最后一个元素,返回值为移除的元素。

RPOPLPUSH source destination

移除列表的最后一个元素,并将该元素添加到另一个列表并返回

LPOP key

移除列表的第一个元素,返回值为移除的元素。

 

set集合:

 

sadd

语法:sadd key member [member…]

作用:

将一个或多个 member 元素加入到集合 key 当中,

已经存在于集合的 member 元素将被忽略, 不会再加入。

返回值:加入到集合的新元素的个数。不包括被忽略的元素。

smembers

语法:smembers key

作用:获取集合 key 中的所有成员元素,不存在的 key 视为空集合

sismember

语法:sismember key member

作用:判断 member 元素是否是集合 key 的成员

返回值:member 是集合成员返回 1,其他返回 0

scard

语法:scard key

作用:获取集合里面的元素个数

返回值:数字,key 的元素个数。 其他情况返回 0

srem

语法:srem key member [member…]

作用:删除集合 key 中的一个或多个 member 元素,不存在的元素被忽略。

返回值:数字,成功删除的元素个数,不包括被忽略的元素。

srandmember

语法:srandmember key [count]

作用:

只提供 key,随机返回集合中一个元素,元素不删除,依然在集合中;

提供了 count时,count 正数, 返回包含 count 个数元素的集合, 集合元素各不相同。

count 是负数,返回一个 count 绝对 值的长度的集合, 集合中元素可能会重复多次。

返回值:一个元素;多个元素的集合

spop

语法:spop key [count]

作用:随机从集合中删除一个元素, count 是删除的元素个数。

返回值:被删除的元素,key 不存在或空集合返回 nil

 

zset有序集合 :

 

zadd:往集合中添加元素

127.0.0.1:6379> zadd ball 1 basketball
(integer) 1
127.0.0.1:6379> zadd ball 2 football
(integer) 1

zrange:查看集合中的元素,后面加上withscores即可显示当前元素所对应的顺序

127.0.0.1:6379> zrange ball 0 -1
1) "basketball"
2) "football"
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"

zrem:删除集合中指定的元素

127.0.0.1:6379> zrange ball 0 -1
1) "basketball"
2) "football"
3) "pingpang"
127.0.0.1:6379> zrem ball pingpang
(integer) 1
127.0.0.1:6379> zrange ball 0 -1
1) "basketball"
2) "football"

zincrby:指定增加元素所对应的顺序,之前noe对应的顺序是1,然后使用zincrby新增了3

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "5"
127.0.0.1:6379> zincrby ball 3 pingpang
"8"
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"

zrank:返回指定元素,在集合中的所对应的索引。 索引是从0开始的,noe对应的索引是0,four对应的是3。按从小到大的顺序

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrank ball basketball
(integer) 0

zrevrank:返回指定元素,在集合中的所对应的索引。按从大到小的顺序,因为是按从大到小的排序,所以four索引变成了0,而noe的索引是3

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrevrank ball football
(integer) 1
127.0.0.1:6379> zrevrank ball pingpang
(integer) 0
127.0.0.1:6379> zrevrank ball basketball
(integer) 2

zrevrange:按集合顺序,从大到小进行显示

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrevrange ball 0 -1 withscores
1) "pingpang"
2) "8"
3) "football"
4) "2"
5) "basketball"
6) "1"

zrangebyscore:显示指定顺序范围内的元素,按元素顺序

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zrangebyscore ball 0 2 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"

zcount:返回指定顺序范围内元素的个数,按元素顺序

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zcount ball 0 20
(integer) 3
127.0.0.1:6379> zcount ball 0 5
(integer) 2

zcard:返回集合中元素数量

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zcard ball
(integer) 3

zremrangebyrank:删除指定索引范围内的元素,索引从0开始,0到1,相对应的元素是noe、tow。按索引

127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "1"
3) "football"
4) "2"
5) "pingpang"
6) "8"
127.0.0.1:6379> zremrangebyrank ball 0 1
(integer) 2
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "pingpang"
2) "8"

zremrangebyscore:删除指定顺序范围内的元素,按元素所对应的顺序

127.0.0.1:6379> zrange ball 0 -1 withscores
 1) "soccoer"
 2) "1"
 3) "football"
 4) "2"
 5) "basketball"
 6) "5"
 7) "pingpang"
 8) "8"
 9) "score"
10) "44"
127.0.0.1:6379> zremrangebyscore ball 0 4
(integer) 2
127.0.0.1:6379> zrange ball 0 -1 withscores
1) "basketball"
2) "5"
3) "pingpang"
4) "8"
5) "score"
6) "44"

以上是redis五种数据类型的

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值