Redis(01)——常用指令

基础指令

  1. select 数字:切换到其他数据库
  2. flushdb:清空当前数据库
  3. flushall:清空所有数据库
  4. dbsize:查看数据库大小
  5. exists key1[key2 …]:判断当前的key是否存在
  6. keys *:查看所有的key
  7. expire key 时间:设置过期时间,单位:秒
  8. ttl key:查看当前key的剩余时间
  9. type key:查看key类型
  10. strlen key:获取key的长度
  11. move key 数字n:移除当前key到数据库(数字n)
  12. del key1[key2 …]:删除key

image.png

字符串string

  1. set key value:存储
  2. get key:获取
  3. getset key value:先get后set
  4. mset key1 val1[key2 val2…]:同时设置多个
  5. mget key1[key2…]:同时获取多个
  6. append key value:向key后面追加字符串,如果当前key不存在,就相当于set
  7. incr key:key的value值自增1,如果value是字符串,则报错
  8. decr key:key的value值自减1,如果value是字符串,则报错
  9. incrby key increment:key的value值增加increment,如果value是字符串,则报错
  10. decrby key decrement:key的value值减少decrement,如果value是字符串,则报错
  11. getrange key start end:获取[start,end]的字符串
  12. setrange key offset value:替换offset指定位置开始的字符串
  13. setex key seconds value(set with expire):设置过期时间
  14. setnx key value(set if not exist):不存在再设置
  15. msetnx key1 val1[key2 val2 …]:要么一起成功,或一起失败

列表list(linkedlist)

可以添加一个元素到列表的头部(左边)或者尾部(右边)

  1. lpush key val1[val2 val3…]:插到列表左部
  2. rpush key val1[val2 val3…]:插到列表右部
  3. lpop key:从列表左部删除一个元素
  4. rpop key:从列表右部删除一个元素
  5. rpoplpush key1 key2:移除列表的最后一个元素,将它移动到新的列表中
  6. lset key index val:设置key的index下标位置的值为val,只有存在这个下标才可以使用
  7. linsert key before val1 val2:将某个val1插入到列表中val2的前面
  8. linsert key after val1 val2:将某个val1插入到列表中val2的后面
  9. lindex key index:获取列表指定index下标索引的元素
  10. lrange key start end:获取[start end]的元素(end为-1时即列表中全部元素)
  11. llen key:获取列表长度
  12. lrem key count val:移除list集合中count指定个数的val,从前往后删除,精确匹配
  13. ltrim key start end:截取list的[strart,end]之间的所有元素,这个key已经被改变了,只剩下截取的元素

哈希hash(map)

  1. hset key field value:添加一个hash值
  2. hget key field:获取指定key的field的值
  3. hmset key field1 val1 field2 val2…:添加多个值
  4. hmget key field1 field2…:获取多个field的值
  5. hgetall key:获取key中的所有值
  6. hdel key field:删除key中指定的field值
  7. hlen key:获取key中元素的个数
  8. hexists key field:判断key中field是否存在
  9. hkeys key:获取key中所有的field
  10. hvals key:获取key中所有的val
  11. hincrby key field 数字n:给hash中的字段增加n
  12. hsetnx key field val:如果存在则可以设置,否则不行

集合set

  1. sadd key val:向key集合添加元素
  2. smembers key:查看指定key的所有元素
  3. sismember key val:查看指定key的指定val元素
  4. scard key:获取key集合的元素个数
  5. srem key val:移除指定key的指定元素
  6. srandmember key 数字n:获取指定集合的n个随机元素
  7. spop key:随机删除key集合的元素
  8. smove key1 key2 val:将集合指定的值移动到另一个集合中
  9. sdiff key1 key2:差集
  10. sinter key1 key2:交集
  11. sunion key1 key2:并集

有序集合sortedset(不允许重复元素)

  1. zadd key score val:向key添加元素
  2. zrange key 数字1 数字2:显示key中数字1到数字2的字段
  3. zrangebyscore key -inf +inf:显示成绩在负无穷到正无穷全部的用户,从小到大
  4. zrangebyscore key -inf +inf withscores:显示全部的用户并附带成绩
  5. zrem key val:移除key中的指定元素
  6. zcard key:获取key中元素的个数
  7. zrevrange key 数字1 数字2:将key中的值从大到小排序
  8. zcount key min max:获取key中指定区间成员的数量

基数统计HyperLogLog

  1. pfadd key val1 val2…:添加,影响基数估值则返回1,否则返回0,若key不存在则创建
  2. pfcount key:获得基数值
  3. pfmerge key key1 key2…:把key1和key2等合并为key
127.0.0.1:6379> pfadd m1 1 2 3 4 1 2 3 2 2 2 2
(integer) 1
127.0.0.1:6379> pfcount m1
(integer) 4
127.0.0.1:6379> pfadd m2 3 3 3 4 4 4 5 5 5 6 6 6 1
(integer) 1
127.0.0.1:6379> pfcount m2
(integer) 5
127.0.0.1:6379> pfmerge mergeDes m1 m2
OK
127.0.0.1:6379> pfcount mergeDes
(integer) 6

使用场景

  1. 统计注册IP数
  2. 统计每日访问IP数
  3. 统计页面实时UV数
  4. 统计在线用户数
  5. 统计用户每天搜索不同词条的个数

位图bitmap

位图(bitmap)同样属于string数据类型,Redis中一个字符串类型的值最多能存储512MB的内容,每个字符串由多个字节组成,每个字节又由8个Bit位组成。位图结构正是使用“位”来实现存储的,它通过将比特位设置为0或1来达到数据存取的目的,这大大增加了value存储数量,它存储上限为2^32

  1. setbit key offset value:在对二进制位进行设置之后,将返回二进制位被设置之前的旧值作为结果
  2. getbit key offset:获取位图指定偏移量上的二进制位的值
  3. bitcount key [start end]:统计位图中值为1的二进制位数量
  4. bitpos key value [start end]:在位图中查找第一个被设置为指定值的二进制位
  5. bitop operation destkey key[key…]:对一个或多个位图执行指定的二进制位运算,并将运算结果存储到指定的键中

使用场景

  1. 用户签到
  2. 统计活跃用户(用户登录情况)
  3. 统计用户是否在线
  4. 实现布隆过滤器

GeoHash

  1. geoadd 集合名称 经度 维度 元素 …:指定携带集合名称以及多个经纬度名称三元组
  2. geodist 集合名称 元素1 元素2 距离单位:用来计算两个元素之间的距离
  3. geopos 集合名称 元素1 …:获取集合中任意元素的经纬度坐标
  4. geohash 集合名称 元素:获取元素的经纬度编码字符串
  5. georadiusbymember 集合名称 元素 数字 距离单位 count 数据 排序方式:查询指定元素附近的其他元素
127.0.0.1:6379> geoadd company 116.489033 40.007669 meituan
(integer) 1
127.0.0.1:6379> geoadd company 116.562108 39.787602 jd 116.334255 40.027400 xiaomi
(integer) 2
127.0.0.1:6379> geodist company juejin ireader km
"10.5501"
127.0.0.1:6379> geopos company ireader
1) "116.5142020583152771"
2) "39.90540918662494363"
127.0.0.1:6379> geopos company juejin ireader
1) "116.48104995489120483"
2) "39.99679348858259686"
1) "116.5142020583152771"
2) "39.90540918662494363"
127.0.0.1:6379> geohash company ireader
1) "wx4g52e1ce0"# 范围 20 公里以内最多 3 个元素按距离正排,它不会排除自身
127.0.0.1:6379> georadiusbymember company ireader 20 km count 3 asc
1) "ireader"
2) "juejin"
3) "meituan"
# 范围 20 公里以内最多 3 个元素按距离倒排
127.0.0.1:6379> georadiusbymember company ireader 20 km count 3 desc
1) "jd"
2) "meituan"
3) "juejin"
# 三个可选参数 withcoord withdist withhash 用来携带附加参数
# withdist 很有用,它可以用来显示距离
127.0.0.1:6379> georadiusbymember company ireader 20 km withcoord withdist withhash count 3 asc
1) "ireader"
2) "0.0000"
3) (integer) 4069886008361398
4) "116.5142020583152771"
5) "39.90540918662494363"
1) "juejin"
2) "10.5501"
3) (integer) 4069887154388167
4) "116.48104995489120483"
5) "39.99679348858259686"
1) "meituan"
2) "11.5748"
3) (integer) 4069887179083478
4) "116.48903220891952515"
5) "40.00766997707732031"127.0.0.1:6379> georadius company 116.514202 39.905409 20 km withdist count 3 asc
1) "ireader"
2) "0.0000"
1) "juejin"
2) "10.5501"
1) "meituan"
2) "11.5748"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/639239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构与算法】1.数据结构绪论

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…

EOCR电机保护器带煤电厂的具体应用

EOCR系列电动机智能保护器在煤电厂中有广泛的应用。这些保护器具有齐全的保护功能、直观的测量参数、快速的反应灵敏度、可靠的行动以及与上位机通讯构成远程监控的能力,使其成为理想的低压电动机保护及远程监控产品。 在煤电厂中,电动机保护器需要具备过…

【Linux多线程】生产者消费者模型

目录 生产者消费者模型 1. 生产者消费者模式的概念 2. 生产者消费者模型优点 ​编辑3. 生产者消费者模型的特点 基于BlockingQueue(阻塞队列)的生产者消费者模型 1.BlockingQueue 2. 使用CSTL中的queue来模拟实现阻塞队列 3. 基于任务的生产者消费…

三天吃透Java集合面试八股文

内容摘自我的学习网站:topjavaer.cn 常见的集合有哪些? Java集合类主要由两个接口Collection和Map派生出来的,Collection有三个子接口:List、Set、Queue。 Java集合框架图如下: List代表了有序可重复集合&#xff0c…

Modbus网关BL101 既实现Modbus转MQTT,还能当串口服务器使用

随着工业4.0的迅猛发展,人们深刻认识到在工业生产和生活中,实时、可靠、安全的数据传输至关重要。在此背景下,高性能的工业电力数据传输解决方案——协议转换网关应运而生,广泛应用于工业自动化系统、远程监控和物联网应用应用环境…

Linux第34步_TF-A移植的第2步_修改设备树和tf-a.tsv

在虚拟机中,使用VSCode打开linux /atk-mp1/atk-mp1/my-tfa/目录下tf-a.code-workspace”; 找到“tf-a-stm32mp-2.2.r1/fdts”目录,就是设备树文件所在的目录。 见下图: 一、修改“stm32mp157d-atk.dts” 修改后,见下…

课题学习(十九)----Allan方差:陀螺仪噪声分析

一、介绍 Allan方差是一种分析时域数据序列的方法,用于测量振荡器的频率稳定性。该方法还可用于确定系统中作为平均时间函数的本征噪声。该方法易于计算和理解,是目前最流行的识别和量化惯性传感器数据中存在的不同噪声项的方法之一。该方法的结果与适用…

Window安装Python和开发Pycharm

准备: 1:安装Python环境 https://www.python.org/downloads/windows/ 2: 下载Pycharm https://www.jetbrains.com/pycharm/download/other.html

openGauss学习笔记-203 openGauss 数据库运维-常见故障定位案例-修改索引时只调用索引名提示索引不存在

文章目录 openGauss学习笔记-203 openGauss 数据库运维-常见故障定位案例-修改索引时只调用索引名提示索引不存在203.1 修改索引时只调用索引名提示索引不存在203.1.1 问题现象203.1.2 原因分析203.1.3 处理办法 openGauss学习笔记-203 openGauss 数据库运维-常见故障定位案例-…

Oracle1 数据库管理

Oracle的安装 一、基础表的创建 1.1 切换到scott用户 用sys 账户 登录 解锁scott账户 alter user scott account unlock;conn scott/tiger;发现并不存在scott账户,自己创建一个? 查找资料后发现,scott用户的脚本需要自己执行一下 C:\ap…

【100个 Unity实用技能】☀️ | Unity中 过滤透明区域的点击事件

Unity 小知识 大智慧 🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐&#x…

【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)

【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source) 1)执行环境(Execution Environment)1.1.创建执行环境1.2.执行模式(Execution Mode)1.3.触发程序执行…

Unity 编辑器篇|(九)编辑器美化类( GUIStyle、GUISkin、EditorStyles) (全面总结 | 建议收藏)

目录 1. GUIStyle1.1 参数总览1.2 样式代码 2. GUISkin2.1 参数总览2.2 创建自定义Skin 3. EditorStyles2.1 参数总览1.2 反射获取所有EditorStyles 1. GUIStyle GUIStyle是一个用于定制GUI控件样式的类,它包含了控件的外观属性,如字体、颜色、背景等。…

AR与AI融合加速,医疗护理更便捷

根据Reports and Data的AR市场发展报告,到2026年,预计医疗保健市场中的AR/VR行业规模将达到70.5亿美元。这一趋势主要受到对创新诊断技术、神经系统疾病和疾病意识不断增长的需求驱动。信息技术领域的进步,包括笔记本电脑、计算机、互联网连接…

机器视觉之Open3D简介

Open3D简介 Open3D是由英特尔实验室智能系统实验室开发的开源 3D 计算机视觉库。该库为开发人员提供了一个易于使用且高性能的3D数据处理平台。Open3D 包括用于 3D 几何处理、场景重建和 3D 机器学习的高级算法,使其成为从事 3D 计算机视觉工作的研究人员、工程师和…

数据结构--数组和广义表

1. 数组的定义 略 2. 数组的顺序表示 由于数组定义后,数组的维度和每维的长度就不再改变,其结构是固定的,因此一般采用顺序存储结构。 3. 特殊矩阵的压缩矩阵 4. 广义表的定义和抽象操作 广义表一些操作可以看数据结构--广义表_空广义表的…

k8s 使用tomcat官方镜像部署集群并解决访问页面404

一、集群节点配置: master:192.168.206.138 k8s-node1:192.168.206.136 k8s-node2:192.168.206.137 二、下载一个Tomcat镜像 docker pull tomcat docker images | grep tomcat docker tag docker.io/tomcat tomcat 三、根据官方镜像自己构建一个一次性就能启动的…

【算法与数据结构】377、LeetCode组合总和 Ⅳ

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题明面上说是组合,实际上指的是排列。动态规划排列组合背包问题需要考虑遍历顺序。 d p …

node.js(express.js)+mysql实现登录功能

文章目录 前言实现步骤 实现步骤一、检测登录表单的数据是否合法(3)新建schema/user.js(4)在routes/use.js中引入schema/user.js中的方法reg_login_schema,代码如下: 二、根据用户名查询用户的数据三、判断…

Python 生成 图片网页列表 显示路径和建立时间 笔记

Python 一键 生成 图片网页列表 显示路径和建立时间 (方便查看复制路径、重复一键生成) 支持格式:jpg \png\ svg\ webp 图片网页列表 图示: 参考代码: # -*- coding: utf-8 -*- import os import datetime# 指定图片…