redis数据类型

redis数据类型1 string 类型 Strings 类型及操作 String 是最简单的类型 一个 key 对应一个 Value String 类型是二进制安全的 Redis 的 string 可以包含任何数据 比如 jpg 图片或者序列化的对象

大家好,欢迎来到IT知识分享网。

1、string类型

Strings类型及操作

String是最简单的类型, 一个 key对应一个Value, String类型是二进制安全的。Redis的 string可以包含任何数据, 比如jpg图片或者序列化的对象。

相关命令:

set

设置键值,

语法:set key value

> set name pengjihan

get

获取键的值

语法:get 键名

> get name

incr

执行自增操作, 每执行一次, 数据自动加1

语法:incr 键名

注意:要求键的值是整数类型, incr可以不给初使值

> set age 10

> incr age

(integer) 11

> incr age

(integer) 12

decr

执行自减操作, 每执行一次, 数据自动加1

语法:decr 键名

注意:要求键的值是整数类型, incr可以不给初使值

> set age 10

> decr age

(integer) 9

> decr age

(integer) 8

执行加法操作, 可以指定相加的值。

语法:incrby 键名 相加的值

> set age 10

> incrby age 5

(integer) 15

执行减法操作, 可以指定相减的值。

语法:incrby 键名 相减的值

> set age 10

> decrby age 5

(integer) 5

> decrby age 10

(integer) -5

2、hashes类型及操作

Redis hash是一个string类型的field和value的映射表。

它的添加、删除操作都是0(1)(平均)。

hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。

将一个对象存储在hash类型中会占用更少的内存, 并且可以更方便的存取整个对象。

注意:哈希类型, 可以存储一行的数据, 可以存储一个关联数组

(1)hset

设置哈希里面的field和vlaue的值。

语法:

hset 哈希的名称(键名称) field value

> hset row1 id 1

> hset row1 name xiaobai

(2)hget

获取哈希里面的field的值

语法:hget 哈希的名称(键名称) 指定的field

> hget row1 id

> hget row1 name

(3)hmset

一次性设置多个field和value

语法:hmset 哈希的名称(键名称) field1 value1 field2 value2…

> hmset row2 id 2 name xiaohei age 12 salary 12000

(4)hmget

一次性获取多个field的value

语法:hmget 哈希的名称(键名称) field1 field2…

> hmget row2 id name age salary

> hget row2 salary

(5)hgetall

获取哈希中所有的field和value

语法:

hgetall 哈希的名称(键名称)

> hgetall row2

3、lists类型及操作

list是一个链表结构, 主要功能是push、pop、获取一个范围的所有值等等, 操作中key 理解为链表的名字。

redis的list类型其实就是一个每个子元素都是string 类型的双向链表。

我们可以通过push、pop操作从链表的头部或者尾部添加删除元素, 这样list即可以作为栈, 又可以作为队列。

链表类型可以模拟栈的操作。

(1)lpush

从链表的头部添加元素

语法: lpush 链表的名称(键的名称) 元素

> lpush list1 xiaobai

> lpush list1 xiaohei

> lpush list1 xiaohuang

(2)lrange

获取链表里面的元素

语法:

lrange 链表的名称 开始下标 结束下标

注意:如果开始下标是0, 结束下标是-1, 则是返回链表中所有的元素。

链表里面的元素是序号的(从0开始数), 类似于索引数组。

> lrange list1 0 -1

> lrange list1 0 1

(3)rpush

从链表的尾部添加元素

语法:rpush 链表的名称(键的名称) 元素

> rpush list2 one

> rpush list2 two

> rpush list2 three

(4)ltrim

保留指定范围的元素, 删除非指定范围的元素

语法:ltrim 链表的名称 开始下标 结束下标

> ltrim list2 0 1

> lrange list2 0 -1

(5)lpop

从链表的头部删除一个元素, 返回删除的元素

语法:lpop 链表的名称

> lpop list2

4、sets类型及操作

set是集合, 它是string类型的无序集合。set是通过hash table实现的、添加、删除和查找的复杂度都是0(1)。

对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。

集合的特点:(1)唯一性 (2)无序性

交集:求两个集合中都存在的元素

差集: 在集合1中出现, 在集合2中不存在的元素

并集: 两个集合合并后, 去掉重复的元素

(1)sadd

向集合中添加元素

语法:

sadd 集合名(键名) 元素名称

> sadd set1 limochou

> sadd set1 yangguo

> sadd set1 luxiaofeng

> sadd set1 xiongda

> smembers set1

> sadd set2 yangguo

> sadd set2 xionger

> sadd set2 guangtouqiang

(2)smembers

获取集合中的元素

语法:

smembers 集合名

> smembers set1

> smembers set2

(3)sdiff difference: 差集

获取集合中的差集(在集合1中存在, 不在集合2中存在的元素)

语法:sdiff 集合1 集合2

> sdiff set1 set2

(4)sinter intersect: 交集

获取交集(在两个集合中都存在的元素)

语法:sinter 集合1 集合2

> sinter set1 set2

(5)sunion union: 联盟

求并集(两个集合合并后, 去掉重复的元素)

> sunion set1 set2

(6)scard

获取集合中元素的个数

语法:scard 集合名称

> scard set1

> scard set2

(7)srem remove: 移除,去除

移除集合中的member元素。

语法: srem 集合名称 元素名称

> srem set2 xiaoer

5、zset(有序集合)

(1)zadd

增加一个或多个元素, 如果该元素已经存在, 更新它的socre值

虽然有序集合有序, 但它也是集合, 不能重复元素, 添加重复元素只会更新原有元素的score值, score(索引)从0开始。

语法:

zadd 有序集合的名称(key) 顺序 元素的内容

> zadd orderset 0 wangnana

> zadd orderset 1 pengjihan

> zadd ordreset 2 liujing

> zadd ordreset 10 xuchenkai

(2)查询

按权值升序获取有序集合中的内容,

语法:zrange 集合的名称 开始名次 结束名次

> zrange orderset 0 2

1) “wangnana”

2) “pengjihan”

3) “liujing”

> zrange orderset 0 -1

1) “wangnana”

2) “pengjihan”

3) “liujing”

4) “xuchenkai”

5) “pengxiaotang”

DEL key [key …]

移除给定的一个或多个key。

如果key不存在, 则忽略该命令。

> del name

(integer) 0

> del age sex stu

(integer) 3

注意: del方法可以删除以上所有数据类型

redis数据类型的应用场景:

String:缓存、限流、计数器、分布式锁、分布式Session

Hash: 存储用户信息、用户主页访问量、组合查询

List: 微博关注人时间轴列表、简单队列

Set: 赞、踩、标签、好友关系

Zset: 排行榜

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/124132.html

(0)
上一篇 2025-10-09 10:20
下一篇 2025-10-09 10:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信