Redis不同数据类型的命令语句详解
来源:脚本之家
时间:2023-01-01 13:46:04 492浏览 收藏
对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《Redis不同数据类型的命令语句详解》,主要介绍了命令、Redis数据类型,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!
一、String
String是Redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储人了数据类型,比如数字、图片、序列化对象等
Ⅰ、set、get、append、strlen、exists
append key value #追加键值,并返回追加后的长度(若键不存在,则相当于创建键) exists key [key...] #判断该键是否存在,存在返回1,否则返回0 set key value [expiration EX seconds|PX milliseconds] [NX|XX] #创建键 get key #查看键值 strlen key #获取指定key的字符长度
Ⅱ、incr、decr、incrby、decrby
需要值为整数,否则会报错
incr key #键值增1 decr key #键值减1 incrby key increment #键值增加指定值 decrby key increment #键值减少指定值
Ⅲ、getset、setnx
GETSET key value #获取key值并返回,同时给key设置新值 SETNX key value #不存在键的话执行set操作,存在的话不执行
Ⅳ、setex、ttl
setex key seconds value #设置指定key的过期时间为指定值 ttl key #tt1命令查看指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期。获取已过 期的Key将返回(nil)
Ⅴ、mget、mset、msetnx
MSET key value [key value …] #批量设置键-值对 MGET key [key …] #批量获取键值对 MSETNX key value [key value …] #批量设置键值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0
二、List
列表的元素类型为String,按照插入顺序在列表的头部和尾部添加元素
Ⅰ、lpush、lpushx、lrange
LPUSH key value [value …] #在头部(左侧)依次插入列表元素 LPUSHX key value #键必须存在才能执行,在头部插入元素值并返回并返回列表元素数量 LRANGE key start stop #取从位置索引start到位置索引stop的所有元素(所以以0开始)
lrange key 0 -1 #展示所有
Ⅱ、lpop、llen
lpop key #移除并返回键的第一个元素 llen key #获取表中元素数量
Ⅲ、lrem、lset、lindex、ltrim
lrem key count value #从头部开始删除count个为value的元素,并返回实际删除数量 lset key index value #将位置索引为index的元素设置新值value lindex key index #获取索引为index的元素 ltrim key start stop #仅保留从位置索引start到索引stop的元素
lrem删除一个符合value为a的值
lset将索引为1(从0开始,即第二个)的元素替换为新值a,获取索引为2的元素
只保留索引0~2的元素
Ⅳ、linsert
LINSERT key BEFORE|AFTER pivot value #在元素pivot的前面(做左)或后面(右)插入新元素value
在c前面插入b
Ⅴ、rpush、rpushx、rpop、rpoplpush
RPUSH key value [value …] #在列表的尾部依次插入value RPUSHX key value #key必须存在才可执行,将value从尾部插入,并返回所有元素数量 RPOP key #在尾部弹出(移除)一个元素,并返回该元素 RPOPLPUSH source destination #在key1的尾部弹出一个元素并返回,将它插入key2的头部
rpush从test尾部依次插入jklmn
rpop尾部第一个元素
将test的尾部元素m弹出,同时再插入到test1的头部(原子性的完成这两步操作),也可以作用在test自己身上,将最后一个元素提到第一个
三、Hash
Hash用于存储对象,可以采用这样的命名方式(hash格式):对象列别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值
Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx
hset key field value #创建key hget key field #获取key-value hexists key field #key是否存在 hdel key field [field ...] #删除指定key hlen key #key字段数 hsetnx key field value #不重复的创建key,即只有指定的key不存在才可以创建
Ⅱ、hincrby
hincrby key field increment #给指定的hash类型(整数)值指定增长值
key hash kk字段设值为4,hincrby1后kk值为5
Ⅲ、hgetall、hkeys、hvals、hmset、hmget
hgetall key #输出指定字段的所有字段以及值 hkeys key #输出指定键中的所有字段名 hvals key #输出指定键中的所有字段值 hmset key field value [field value ...] #一次性设置多个字段 hmget key field [field ...] #一次性获取多个字段
四、set
无序集合,元素类型为string类型,元素具有唯一性,不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算
应用范围:
可以使用Redis的Set数据类型跟踪一些唯一性数据,比如访问某一博客的唯一IP地址信息。对于此场景,我们仅需在每次访问该博客时将访问者的IP存入Redis中,Set数据类型会自动保证IP地址的唯一性。充分利用Set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如购买某一电子设备的客户ID被存储在一个指定的Set中,而购买另外一种电子产品的客户ID被存储在另外一个Set中,如果此时我们向获取有哪些客户同时购买了这两种商品时,Set的intersections命令就可以充分发挥它的方便和效率的优势
Ⅰ、sadd、smembers、scard、sismember
sadd key member [member ...] #创建键并加入member smembers key #查看指定key中所有的members scard key #查看指定key中members个数 sismember key member #判断指定key中的member是否存在
创建key-set,members为qq、ww、ee、rr,判断qq在其中返回1,判断pp不在其中返回0
Ⅱ、spop、srem、srandmember、smove
spop key [count] #随机的移除并返回key中的某一成员 srem key member [member ...] #从指定key中移除指定member srandmember key [count] #随机输出指定数量的members smove source destination member #将一个member移动到另一个key中
五、Sorted Set
有序集合,元素类型为string,元素具有唯一性,不能重复。每个元素都会关联一个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同
应用范围:
可以用于一个大型在线游戏的积分沛航胖,每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP10的用户信息。当然我们也可以利用ZRANK命令通过usename来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息。Sorted-Set类型还可用于构建索引数据
Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank
zadd key [NX|XX] [CH] [INCR] score member [score member ...] #向有序集合内添加members,或更新已存在的score zcard key #获取key中的members数量 zcount key min max #输出满足 minⅡ、zrangebyscore、zremrangebyrank、zremrangebyscore
zrangebyscore key min max [WITHSCORES] [LIMIT offset count] #获取满足minⅢ、zrevrange、zrevrangebyscore、zrevrank
zrevrange key start stop [WITHSCORES] #以位置索引从高到低的方式获取并返回此区间内的成员 zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count] #获取满足 min理论要掌握,实操不能落!以上关于《Redis不同数据类型的命令语句详解》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
224 收藏
-
161 收藏
-
185 收藏
-
436 收藏
-
492 收藏
-
342 收藏
-
361 收藏
-
159 收藏
-
164 收藏
-
221 收藏
-
156 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习
-
- 纯情的芒果
- 这篇博文真及时,很详细,太给力了,收藏了,关注作者大大了!希望作者大大能多写数据库相关的文章。
- 2023-02-28 11:56:34
-
- 大方的黑夜
- 这篇博文真及时,老哥加油!
- 2023-01-16 19:42:00
-
- 活泼的吐司
- 这篇文章出现的刚刚好,太详细了,太给力了,已收藏,关注up主了!希望up主能多写数据库相关的文章。
- 2023-01-06 19:21:07
-
- 标致的镜子
- 这篇博文真及时,太细致了,很棒,收藏了,关注老哥了!希望老哥能多写数据库相关的文章。
- 2023-01-04 17:09:46
-
- 自然的大炮
- 细节满满,码起来,感谢楼主的这篇文章,我会继续支持!
- 2023-01-02 19:43:42
-
- 复杂的店员
- 写的不错,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,看完之后很有帮助,总算是懂了,感谢作者大大分享技术文章!
- 2023-01-02 06:02:41