0
点赞
收藏
分享

微信扫一扫

Mock数据

水沐由之 2024-06-14 阅读 39

目录

前言:为什么要学Redis?

一:value的第一种数据类型:String

二:value的第二种数据类型:hash

三:value的第三种数据类型:list

四:value的第四种数据类型:set

五:value的第五种数据类型:zset

六:Redis的其他操作


前言:为什么要学Redis?

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. 翻译为:Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存等。

官网:https://redis.io

中文网 Redis中文网

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到10万+的QPS(Queries-per-second每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。

 Redis的数据类型

Redis是一种高级的key-value的存储系统,其中key(键)是String类型,value支持5种数据类型即:String,hash,list,set,zset。

关于key(键)的数据类型有以下规则:

一:value的第一种数据类型:String

更多命令可以参考Redis中文网:Redis中文网

字符串类型是Redis中最为基础的数据存储类型,它在Redis中以二进制保存。无论存入的是字符串、整数、浮点类型都会以字符串写入。String为value时,最大存储容量为512M

 String的常用命令如下:

命令功能
set 键 值添加或修改一个键和值,键不存在就是添加,存在就是修改
get 键获取值,如果存在就返回值,不存在返回nil(就是C语言中NULL)
del 键删除指定的键和值,返回删除的个数
SETEX key seconds value设置指定key的值,并将 key 的过期时间设为 seconds 秒。此处的value是指key对应的value值。等价于:SET key value ex seconds
EXPIRE key seconds如果一个key已经存在,要设置一个过期时间
SETNX key value/set key value nx保存键值对,如果key存在则不保存,不存在则保存

String作为value的常见的使用场景: 

二:value的第二种数据类型:hash

可以将hash理解为在JavaSE学习的map一样,hash作为value时,最大存储容量为:4G个键值对

hash的常用指令如下:

命令功能
hset 键 字段 值添加键,字段,值
hget 键 字段通过键,字段得到值
hmset 键 字段 值 字段 值multiply多个,一次添加多个字段和值
hmget 键 字段 字段通过键,获取多个字段和值
hdel 键 字段 字段删除一个或多个字段的值
hgetall 键得到这个键下所有的字段和值
HKEYS 键获取哈希表中所有字段
HVALS 键获取哈希表中所有值

例如:创建hash类型的键为person,并且添加一个字段为name,值为zhangsan

 

hash的常用场景:

三:value的第三种数据类型:list

在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其左部(left)和右部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是4G个

list常用命令:

命令行为
lpush 键 元素 元素...left 从左边向指定的键中添加1个或多个元素,返回列表中元素的个数
rpush 键 元素 元素...right 从右边向指定的键中添加1个或多个元素
lpop 键从左边删除一个元素,返回被删除的元素
rpop 键从右边删除一个元素,返回被删除的元素
lrange 键 开始 结束得到键中指定范围的元素的数据 每个元素都有一个索引号,从左向右0~n 从右向左索引号:-1~-(n+1),每个元素有2个索引号 如果要取出整个列表中所有的元素,索引号应该是:0~-1
lindex 键 索引值查询指定索引的元素
llen 键获取列表的长度
BRPOP key1 [key2 ] timeout移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止,超时时间单位默认是秒
LREM key 删除元素个数 value值从表头删除指定个数的元素

list的图示:

list的常用场景:

四:value的第四种数据类型:set

在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。Set可包含的最大元素数量是4G,和List类型不同的是,Set集合中不允许出现重复的元素。

set常用命令:

命令行为
sadd 键 元素 元素...向一个键中添加1个或多个元素
smembers 键得到这个集合中所有的元素
sismember 键 元素判断指定的元素在集合中是否存在,存在返回1,不存在返回0
srem 键 元素 元素...通过键删除一个或多个元素
sinter key1 [key2]返回给定所有集合的交集(集合中都共有的部分)

set常用场景:

五:value的第五种数据类型:zset

Redis 有序集合(sorted set)和set集合一样也是无序不可以重复。不同的是每个元素都会关联一个分数(排序因子)。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复,每个集合可存储40多亿个成员。

zset的常用命令:

命令行为
zadd 分数 分数 添加1个或多个元素,每个元素都有一个分数
zrange 开始索引 结束索引获取指定范围的元素,得到所有的元素,索引是0到-1
zrange 键 开始索引 结束索引 withscores查询指定的元素和对应的分数
zrevrange 键 开始索引 结束索引 withscores按照分数倒叙获取指定的元素和对应的分数
zrem 键 值 值删除一个或多个值
zcard 得到元素个数
zrank 得到元素的索引号
zscore 键 值得到元素的分数

 zset的图示:

 zset的常用场景:

六:Redis的其他操作

以下操作命令也可以用来操作redis的其他操作,如下:

命令功能
keys 匹配字符查询所有的键,可以使用通配符 * 匹配多个字符 ? 匹配1个字符
del 键1 键2删除任何的值类型,而且可以同时删除多个键
exists 判断指定的键是否存在,不存在返回0 存在返回1
type 判断指定的键,值的类型。返回是类型的名字
select 数据库编号选择其它的数据库
move 数据库编号将当前数据库中指定的键移动到另一个数据库中
TTL key返回给定 key 的剩余生存时间(TTL, time to live),以秒为单位 从Redis2.8开始:如果key不存在或者已过期,返回-2;如果key存在并且没有设置过期时间(永久有效),返回-1
flushallredis的flushall命令用来清空redis所有的库,测试可以使用,开发中最好不要用。

因此,基于以上的一些命令是操作redis的基础命令,同时redistribution,还具有以下优点

举报

相关推荐

0 条评论