当前位置: 首页 > news >正文

redis命令学习

redis windows版下载地址:https://github.com/tporadowski/redis/releases
下载完成双击安装,点击下一步即可。
端口:6379

RedisInsight

下载地址: https://redis.com/redis-enterprise/redis-insight/#insight-form
下载完成双击安装,点击下一步即可。
在这里插入图片描述

字符串,STRING

redis-cli:连接redis
SET name value:设置字段,设置的字段以键值对方式存放
GET name:通过键获取值
DEL name:通过键删除值
EXISTS name:通过键看值是否存在
KEYS *:查找数据库所有键
KEYS *me:查找数据库后缀是me的所有键
clear:清屏
quit:退出redis
FLUSHALL:删除数据库中所有键
redis默认不支持中文,
支持中文登录:redis-cli --raw
TTL name:查看键的过期时间,-1表示未设置过期时间、-2表示已过期
EXPIRE name 10:设置name键10秒后过期
SETEX name 5 value:直接设置键值对和过期时间(表示键值对5秒过期)
SETNX name value:先判断键是否存在,若存在,不改变。不存在,创建

列表,LIST

LPUSH:会将新的元素添加到列表头部,是倒序。
LPUSH letter a:向列表中加一个元素 a,类似数据,可加多个元素。与java有些不同,若数据库中有字符串键,则不允许创建列表键。
LPUSH letter b c d:可以向列表中添加多个元素。
LRANGE letter 0 10:查看键列表中前10个元素,若结尾是-1,则获取所有元素。
RPUSH:会将新的元素添加到列表尾部,是正序。
RPOP:表示从后往前删除元素
RPOP letter:删除列表中最后一个元素
RPOP letter 2:后面加数字,表示删除列表中的多个元素(如前文删除最后两个元素) --5.0版本不支持
LPOP:表示从前往后删除元素
RPOP letter:删除列表中第一个元素
RPOP letter 2:后面加数字,表示删除列表中的多个元素(如前文删除前两个元素) --5.0版本不支持
LLEN letter:看列表长度
LRANGE letter 1 3:表示只保留列表中1到3的三个元素(如数组相同,排序是从0开始)
LINDEX letter 2:表示获取列表中第三个元素的值(排序从0开始),若输入值超过所有元素大小,会返回空,不会报错。
LREM letter 2 7:表示删除列表中2个7元素(顺序从前往后),若列表中只有一个7,则直接删除此7元素。

集合 set

是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据

sadd namen 1:向集合中添加1这个成员
sadd namen 1 2 3:可一次性向集合中加入多个成员,若上一条执行,此一条只向集合中加入2 3两个成员。
smembers namen:查询集合中的成员
sismember namen 1:看集合中是否有1这个成员,返回个数,因集合元素是唯一的,返回1 表示集合中有这个成员,返回0 表示集合中没有这个成员。
srem namen 1:删除集合中的成员
scard namen:获取集合中的成员数
sinter:sinter后若只有一个集合,返回这个集合中所有成员,若两个或多个,返回给定所有集合的交集
127.0.0.1:6379> smembers nameb
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> smembers namen
1) "2"
2) "3"
127.0.0.1:6379> sinter namen nameb
1) "2"
2) "3"
sinterstore:返回给定所有集合的交集并存储在 namef 中
127.0.0.1:6379> sinterstore namef namen nameb namec
1
127.0.0.1:6379> smembers namen
2
3
4
127.0.0.1:6379> smembers nameb
2
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> smembers namef
2
127.0.0.1:6379>
SDIFF:sdiff后若只有一个集合,返回这个集合中所有成员,若两个或多个,返回第一个集合与其他集合之间的差异。
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sdiff nameb namec
4
127.0.0.1:6379>
sdiffstore:返回给定所有集合的差集并存储在 nameh 中
127.0.0.1:6379> smembers namen
2
3
4
5
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sdiffstore nameh namen nameb namec
1
127.0.0.1:6379> smembers nameh
5
127.0.0.1:6379>
sunion:返回所有给定集合的并集
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sunion nameb namec
1
2
3
4
127.0.0.1:6379>
sunionstore:所有给定集合的并集存储在 nameg 集合中
127.0.0.1:6379> smembers nameb
2
4
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> sunionstore nameg nameb namec
4
127.0.0.1:6379> smembers nameg
1
2
3
4
127.0.0.1:6379>
spop:移除并返回集合中的一个随机元素
127.0.0.1:6379> smembers namec
1
2
3
127.0.0.1:6379> spop namec
3
127.0.0.1:6379> smembers namec
1
2
127.0.0.1:6379>
smove:将 2 元素从 n1 集合移动到 n4 集合
移动后n1集合会失去2成员,n4增加2成员
127.0.0.1:6379> smembers n1
2
3
127.0.0.1:6379> smove n1 n4 2
1
127.0.0.1:6379> smembers n1
3
127.0.0.1:6379> smembers n4
2
127.0.0.1:6379>
srandmember:返回集合中一个或多个随机数
srandmember n1 2:从n1集合中返回两个随机数
127.0.0.1:6379> smembers n1
1
2
3
127.0.0.1:6379> srandmember n1 2
2
1
127.0.0.1:6379> srandmember n1 3
1
2
3
127.0.0.1:6379>
srem:移除集合中一个或多个成员
srem n1 2 3:移除集合n1中2和3两个成员
127.0.0.1:6379> smembers n1
1
2
3
127.0.0.1:6379> srem n1 2 3
2
127.0.0.1:6379> smembers n1
1
127.0.0.1:6379>

差集:A-B将A集合中B集合里所有元素去掉,得出差集
在这里插入图片描述

交集:A、B相交的部分
在这里插入图片描述

并集:A、B中所有元素
在这里插入图片描述

有序集合,sorted set

与集合区别:每一个成员都会关联一个浮点类型的分数

zadd:向有序集合添加一个或多个成员,或者更新已存在成员的分数
向有序集合添加三个成员
127.0.0.1:6379> zadd score 100 yuwen 99 shuxue 98 yingyu
(integer) 3
zcard:获取score有序集合的数量
127.0.0.1:6379> zcard score
3
zcount:查score集合中99到100间的成员数量
127.0.0.1:6379> zcount score 99 100
2
zrange:查询集合score中所有有序集合的成员,后加withscores将成员和分数一起显示出来
127.0.0.1:6379> zrange score 0 -1
yingyu
shuxue
yuwen
127.0.0.1:6379> zrange score1 0 -1 withscores
yuwen
199.5
zincrby:在score有序集合中增加成员100 分数加2(分数初始值为0) 若想调整可继续增加
zincrby score 2 100
zinterstore score1 2 score store1:将score和store1成员交集放到新的有序集合score1中,成员的分数相加放入。
表达式中的2表示要计算交集的有序集合的数量
127.0.0.1:6379> zrange store1 0 -1 withscores
yuwen
99.5
127.0.0.1:6379> zrange score 0 -1 withscores
88
2
99
2
100
5
yingyu
98
shuxue
99
yuwen
100
127.0.0.1:6379> zinterstore score1 2 score store1
1
127.0.0.1:6379> zrange score1 0 -1 withscores
yuwen
199.5
127.0.0.1:6379>
zrangebylex:返回score有序集合中成员首字母为a-z的所有成员
127.0.0.1:6379> zrange score 0 -1
88
99
100
yingyu
shuxue
yuwen
127.0.0.1:6379> zrangebylex score [a [z
yingyu
shuxue
yuwen
zlexcount:返回成员首字母为a-z的成员个数
127.0.0.1:6379> zrange score 0 -1
88
99
100
yingyu
shuxue
yuwen
127.0.0.1:6379>
127.0.0.1:6379> zlexcount score [a [z
3
127.0.0.1:6379>
zrangebyscore:查看score分数在90到100区间内的成员
127.0.0.1:6379> zrange score 0 -1
88
99
100
yingyu
shuxue
yuwen
127.0.0.1:6379> zrangebyscore score 90 100
yingyu
shuxue
yuwen
zrangebyscore:查看score分数在90到100区间内的成员+分数
127.0.0.1:6379> zrangebyscore score 90 100 withscores
yingyu
98
shuxue
99
yuwen
100
zrank:返回有序集合中指定成员的索引(索引从0开始),索引大小按分数从小到大排列
127.0.0.1:6379> zrange score 0 -1 withscores
yingyu
98
shuxue
99
yuwen
100
127.0.0.1:6379> zrank score yingyu
0
127.0.0.1:6379>
zrevrank:返回有序集合中指定成员的索引(索引从0开始),索引大小按分数从大到小排列
127.0.0.1:6379> zrevrank score yingyu
2
zrem:移除有序集合的成员,成员后面可写多个 同时移除多个成员
127.0.0.1:6379> zrange score 0 -1 withscores
yingyu
98
shuxue
99
yuwen
100
127.0.0.1:6379> zrem score yuwen
1
127.0.0.1:6379> zrange score 0 -1 withscores
yingyu
98
shuxue
99
127.0.0.1:6379>
zscore:返回有序集中,成员的分数值
127.0.0.1:6379> zscore score yingyu
98
127.0.0.1:6379>

哈希 Hash

是一个字符类型的字段和值的映射表,适合存储对象。

hset:向哈希表中填入值,创建people哈希表 里面有两个对象(对象以键值对存储)分别为name wxy age 18,后可写多个对象
127.0.0.1:6379> hset people name wxy age 18
2
127.0.0.1:6379> hset people age1 19
1
hgetall:查看people哈希表所有值
127.0.0.1:6379> hgetall people
name
wxy
age
18
age1
19
hdel:删除people哈希表中age1对象,可删除多个对象
127.0.0.1:6379> hdel people age1
1
127.0.0.1:6379> hgetall people
name
wxy
age
18
hexists:看people哈希表中age对象是否存在
127.0.0.1:6379> hexists people age
1
hget:获取people哈希表中age对象的值
127.0.0.1:6379> hget people age
18
hkeys:获取哈希表中的所有对象的键
127.0.0.1:6379> hkeys people
name
age
hlen:获取哈希表中对象的数量
127.0.0.1:6379> hlen people
2
hmget:获取people哈希表中name、age的值
127.0.0.1:6379> hmget people name age
wxy
18
hsetnx:如果对象存在,不设置哈希表字段的值。如果对象不存在,设置哈希表字段的值。
127.0.0.1:6379> hsetnx people age 20
0
127.0.0.1:6379> hsetnx people age1 20
1
127.0.0.1:6379> hgetall people
name
wxy
age
18
w
wx
age1
20
127.0.0.1:6379>
hvals:获取people哈希表对象的值
127.0.0.1:6379> hvals people
wxy
18
wx
20
127.0.0.1:6379>

redis学习资料
视频:https://www.bilibili.com/video/BV1Jj411D7oG/?p=9&spm_id_from=pageDriver&vd_source=7d39df6e3f2770c3c9e47a274076d72b
菜鸟教程:https://www.runoob.com/redis/redis-hashes.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 构建Docker镜像时,遇到从`deb.debian.org`下载软件包速度很慢
  • [论文笔记]ZeRO: Memory Optimizations Toward Training Trillion Parameter Models
  • 软考:软件设计师 — 13.数据结构
  • 【社区团购系统设计】
  • apache huidi 时间旅行Time Travel)机制
  • QT:QTableWidget 如何设置列的对齐方式?
  • git的下载与安装(Windows)
  • linux :date 命令增减时间及修改系统时间和机器时间
  • django之反向关系查询<related_model>_set/related_name
  • ArcGIS Pro 实现人口分布栅格TIFF数据的网格提取与可视化
  • 硬件面试经典 100 题(71~90 题)
  • 25届最近4年厦门大学自动化考研院校分析
  • Java面试题———分布式篇
  • Python基础知识点--总结
  • springboot使用aop或Jackson进行数据脱敏
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • css系列之关于字体的事
  • github从入门到放弃(1)
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java读取Properties文件的六种方法
  • MaxCompute访问TableStore(OTS) 数据
  • mongodb--安装和初步使用教程
  • mysql innodb 索引使用指南
  • MYSQL 的 IF 函数
  • oschina
  • php中curl和soap方式请求服务超时问题
  • python3 使用 asyncio 代替线程
  • React-flux杂记
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SQL 难点解决:记录的引用
  • Swift 中的尾递归和蹦床
  • Vue--数据传输
  • 阿里研究院入选中国企业智库系统影响力榜
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从零开始的无人驾驶 1
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 设计模式(12)迭代器模式(讲解+应用)
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序测试方案初探
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 在Unity中实现一个简单的消息管理器
  • k8s使用glusterfs实现动态持久化存储
  • raise 与 raise ... from 的区别
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​用户画像从0到100的构建思路
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $.ajax中的eval及dataType
  • (02)Unity使用在线AI大模型(调用Python)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)