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

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.lryc.cn/news/285953.html

相关文章:

  • 基本语法和 package 与 jar
  • 本地读取Excel文件并进行数据压缩传递到服务器
  • 【开源】基于JAVA的停车场收费系统
  • 基于java+Springboot操作系统教学交流平台详细设计实现
  • Nginx 基础使用
  • JavaEE:多线程(2):线程状态,线程安全
  • Flutter 自定义AppBar实现滚动渐变
  • 编程语言MoonBit新增矩阵函数的语法糖
  • Angular:跨域请求携带 cookie
  • 【C++】list容器迭代器的模拟实现
  • Docker镜像操作
  • 【Java-框架-SpringSecurity】单点登录(认证和授权)- 随笔
  • 大数据开发之Scala
  • 数字时代的大对决
  • 网络防御保护1
  • 解决Windows下Goland的Terminal设置为Git Bash失败
  • x-cmd pkg | jq - 命令行 JSON 处理器
  • 网络安全笔记
  • php基础学习之代码框架
  • LCD-LMD-PSO-ELM的电能质量分类,LCD特征提取,LMD特征提取,粒子群算法优化极限学习机
  • 【ARMv8M Cortex-M33 系列 7 -- RA4M2 移植 RT-Thread 问题总结】
  • 分享 GitHub 上的敏感词汇工具类:sensitive-word
  • 洛谷P1319 压缩技术(C语言)
  • HQL,SQL刷题简单查询,基础,尚硅谷
  • MSG3D
  • kafka(二)——常用命令
  • 使用Flink处理Kafka中的数据
  • 跟着pink老师前端入门教程-day07
  • Pixelmator Pro Mac版 v3.5 图像处理软件 兼容 M1/M2
  • 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(15)-Fiddler弱网测试,知否知否,应是必知必会