Redis--List、Set、Zset、Hash、Bitmaps、HyperLogLog、Geospatial

List

LPUSH key value1 [value2]  将一个或多个值插入到列表头部

127.0.0.1:6379> LPUSH myls1 1
(integer) 1
127.0.0.1:6379> LPUSH myls1 2
(integer) 2
127.0.0.1:6379> LRANGE myls1 0 -1
1) "2"
2) "1"

LPOP key 移出并获取列表的第一个元素

127.0.0.1:6379> LPOP myls1
"2"
127.0.0.1:6379> LRANGE myls1 0 -1
1) "1"

LRANGE key start stop  获取列表指定范围内的元素

LPUSHX key value  将一个值插入到已存在的列表头部

127.0.0.1:6379> LPUSHX myls2 1 2 3
(integer) 0
127.0.0.1:6379> LRANGE myls2 0 -1
(empty array)

LLEN key  获取列表长度

127.0.0.1:6379> LLEN myls1
(integer) 1

LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素

127.0.0.1:6379> LINSERT myls1 after 1 0
(integer) 10
127.0.0.1:6379> LRANGE myls1 0 -1
 1) "9"
 2) "8"
 3) "7"
 4) "6"
 5) "5"
 6) "4"
 7) "3"
 8) "2"
 9) "1"
10) "0"

LINDEX key index 通过索引获取列表中的元素

127.0.0.1:6379> LINDEX myls1 3
"6"
127.0.0.1:6379> LINDEX myls1 0
"9"

LSET key index value 通过索引设置列表元素的值

127.0.0.1:6379> LSET myls1 0 99
OK
127.0.0.1:6379> LRANGE myls1 0 -1
 1) "99"
 2) "8"
 3) "7"
 4) "6"
 5) "5"
 6) "4"
 7) "3"
 8) "2"
 9) "1"
10) "0"

LREM key count value 移除列表元素

127.0.0.1:6379> LREM myls1 1 99
(integer) 1
127.0.0.1:6379> LRANGE myls1 0 -1
1) "8"
2) "7"
3) "6"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
9) "0"

LTRIM key start stop 对一个列表进行修剪,就是让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

127.0.0.1:6379> LTRIM myls1 0 7
OK
127.0.0.1:6379> LRANGE myls1 0 -1
1) "8"
2) "7"
3) "6"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"

BLPOP key1 [key2 ] timeout 移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

127.0.0.1:6379> BLPOP myls1 60
1) "myls1"
2) "8"
127.0.0.1:6379> BLPOP myls1 60
1) "myls1"
2) "7"
127.0.0.1:6379> BLPOP myls1 60
1) "myls1"
2) "6"

BRPOP key1 [key2 ] timeout  移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

127.0.0.1:6379> BRPOPLPUSH myls1 myls2 60
"1"
127.0.0.1:6379> LRANGE myls1 0 -1
1) "9"
2) "8"
3) "7"
4) "6"
5) "5"
6) "4"
7) "3"
8) "2"
127.0.0.1:6379> LRANGE myls2 0 -1
1) "1"

Set

SADD key member1 [member2]  向集合添加一个或多个成员

SMEMBERS key 返回集合中的所有成员

127.0.0.1:6379> SADD myset1 1 2 3 4 5 6 7
(integer) 7
127.0.0.1:6379> SMEMBERS myset1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"

SCARD key 获取集合的成员数

127.0.0.1:6379> SCARD myset1
(integer) 7

SRANDMEMBER key [count]  返回集合中一个或多个随机数

127.0.0.1:6379> SRANDMEMBER myset1
"3"

127.0.0.1:6379> SRANDMEMBER myset1 3
1) "6"
2) "4"
3) "1"

SISMEMBER key member  判断 member 元素是否是集合 key 的成员

127.0.0.1:6379> SISMEMBER myset1 11
(integer) 0
127.0.0.1:6379> SISMEMBER myset1 4
(integer) 1

SREM key member1 [member2]  移除集合中一个或多个成员

127.0.0.1:6379> SREM myset1 1 2
(integer) 2
127.0.0.1:6379> SMEMBERS myset1
1) "3"
2) "4"
3) "5"
4) "6"
5) "7"

SDIFF key1 [key2] 返回给定所有集合的差集

127.0.0.1:6379> SMEMBERS myset2
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
6) "8"
7) "9"
127.0.0.1:6379> SDIFF myset1 myset2
1) "5"
2) "6"
3) "7"

SDIFFSTORE destination key1 [key2]  返回给定所有集合的差集并存储在 destination 中

127.0.0.1:6379> SDIFFSTORE myset3 myset1 myset2
(integer) 3
127.0.0.1:6379> SMEMBERS myset3
1) "5"
2) "6"
3) "7"

SINTER key1 [key2]  返回给定所有集合的交集

127.0.0.1:6379> SINTER myset1 myset2
1) "3"
2) "4"

SUNION key1 [key2]  返回所有给定集合的并集

127.0.0.1:6379> SUNION myset1 myset2
 1) "0"
 2) "1"
 3) "2"
 4) "3"
 5) "4"
 6) "5"
 7) "6"
 8) "7"
 9) "8"
10) "9"

SMOVE source destination member  将 member 元素从 source 集合移动到 destination 集合

127.0.0.1:6379> SMOVE myset2 myset1 8
(integer) 1
127.0.0.1:6379> SMEMBERS myset1
1) "3"
2) "4"
3) "5"
4) "6"
5) "7"
6) "8"

SPOP key  移除并返回集合中的一个随机元素

127.0.0.1:6379> SPOP myset2
"1"
127.0.0.1:6379> SMEMBERS myset2
1) "0"
2) "2"
3) "3"
4) "4"
5) "9"

#sscan扫描myset1,从0开始,每次返回4个数量(不保证数量一定是4个)

127.0.0.1:6379> SSCAN myset1 0 count 4
1) "0"
2) 1) "3"
   2) "4"
   3) "5"
   4) "6"
   5) "7"
   6) "8"

Zset

ZADD key score1 member1 [score2 member2]  向有序集合添加一个或多个成员,或者更新已存在成员的分数

ZRANGE key start stop [WITHSCORES]  通过索引区间返回有序集合指定区间内的成员

127.0.0.1:6379> ZADD myzset1 10 zs 20 ls 30 ww
(integer) 3
127.0.0.1:6379> ZRANGE myzset1 0 -1
1) "zs"
2) "ls"
3) "ww"

127.0.0.1:6379> ZRANGE myzset1 0 -1 withscores
1) "zs"
2) "10"
3) "ls"
4) "20"
5) "ww"
6) "30"

ZCARD key  获取有序集合的成员数

ZCOUNT key min max  计算在有序集合中指定区间分数的成员数

ZINCRBY key increment member  有序集合中对指定成员的分数加上增量 increment

127.0.0.1:6379> ZCARD myzset1
(integer) 3
127.0.0.1:6379> zcount myzset1 10 20
(integer) 2

127.0.0.1:6379> ZINCRBY myzset1 10 zs
"20"
127.0.0.1:6379> ZINCRBY myzset1 -10 zs
"10"

ZLEXCOUNT key min max 在有序集合中计算指定字典区间内成员数量

127.0.0.1:6379> zrange myzset1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "zs"
7) "ls"
8) "ww"
127.0.0.1:6379> ZLEXCOUNT myzset1 [a [c
(integer) 3

ZRANGEBYLEX key min max [LIMIT offset count]  通过字典区间返回有序集合的成员

127.0.0.1:6379> ZRANGEBYLEX myzset1 (a (d
1) "b"
2) "c"

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]  通过分数返回有序集合指定区间内的成员

127.0.0.1:6379> ZRANGEBYSCORE myzset1 (1 (30
1) "b"
2) "c"
3) "d"
4) "e"
5) "zs"
6) "ls"

ZRANK key member  返回有序集合中指定成员的索引

127.0.0.1:6379> ZRANK myzset1 zs
(integer) 5
127.0.0.1:6379> ZRANK myzset1 ls
(integer) 6

ZREM key member [member ...]  移除有序集合中的一个或多个成员

127.0.0.1:6379> zrem myzset1 a b
(integer) 2

ZREMRANGEBYLEX key min max  移除有序集合中给定的字典区间的所有成员

127.0.0.1:6379> ZREVRANGEBYSCORE myzset1 (50 (10
1) "ww"
2) "ls"

ZSCORE key member  返回有序集中,成员的分数值

127.0.0.1:6379> ZSCORE myzset1 ls
"20"

Hash

HSET key field value 将哈希表 key 中的字段 field 的值设为 value

HGET key field  获取存储在哈希表中指定字段的值

HGETALL key 获取在哈希表中指定 key 的所有字段和值

127.0.0.1:6379> HSET myhash1 name zs age 18 gender male
(integer) 3
127.0.0.1:6379> hget myhash1 name
"zs"
127.0.0.1:6379> hget myhash1 age
"18"

127.0.0.1:6379> HGETALL myhash1
1) "name"
2) "zs"
3) "age"
4) "18"
5) "gender"
6) "male"

HEXISTS key field  查看哈希表 key 中,指定的字段是否存在

127.0.0.1:6379> HEXISTS myhash1 name
(integer) 1
127.0.0.1:6379> HEXISTS myhash1 height
(integer) 0

HSETNX key field value  只有在字段 field 不存在时,设置哈希表字段的值

HKEYS key 获取所有哈希表中的字段

HVALS key  获取哈希表中所有值

HLEN key  获取哈希表中字段的数量

127.0.0.1:6379> HSETNX myhash1 height 160
(integer) 1
127.0.0.1:6379> HSETNX myhash1 name ls
(integer) 0
127.0.0.1:6379> HKEYS myhash1
1) "name"
2) "age"
3) "gender"
4) "height"
127.0.0.1:6379> HVALS myhash1
1) "zs"
2) "18"
3) "male"
4) "160"
127.0.0.1:6379> HLEN myhash1
(integer) 4

HMGET key field1 [field2]  获取所有给定字段的值

127.0.0.1:6379> HMGET myhash1 name age
1) "zs"
2) "18"
127.0.0.1:6379> HMSET myhash1 class 001 sid 111
OK

HINCRBY key field increment  为哈希表 key 中的指定字段的整数值加上增量 increment

127.0.0.1:6379> HINCRBY myhash1 age -1
(integer) 17

HDEL key field1 [field2]  删除一个或多个哈希表字段

HSCAN key cursor [MATCH pattern] [COUNT count]  迭代哈希表中的键值对

127.0.0.1:6379> HDEL myhash1 sid
(integer) 1
127.0.0.1:6379> HSCAN myhash1 0 count 4
1) "0"
2)  1) "name"
    2) "zs"
    3) "age"
    4) "17"
    5) "gender"
    6) "male"
    7) "height"
    8) "160"
    9) "class"
   10) "001"

Bitmaps

1、setbit

这个命令用于设置Bitmaps中某个偏移量的值(0或1),offset偏移量从0开始。格式如下:

setbit <key> <offset> <value>

2、getbit

这个命令用于获取Bitmaps中某个偏移量的值。格式为:

getbit <key> <offset>

3、bitcount
这个命令用于统计字符串被设置为1的bit数。一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。start 和 end 参数的设置,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,start、end 是指bit组的字节的下标数,二者皆包含。格式如下:

bitcount <key> [start end]

将1变为3

127.0.0.1:6379> SET mybit1 1234567890
OK
127.0.0.1:6379> SETBIT mybit1 6 1
(integer) 0
127.0.0.1:6379> GET mybit1
"3234567890"

统计zhansan一周几次没来上课,1为来了,0为没来

setbit zhansan 第x天 比特值

127.0.0.1:6379> setbit zhansan 0 1
(integer) 0
127.0.0.1:6379> setbit zhansan 2 1
(integer) 0
127.0.0.1:6379> setbit zhansan 3 1
(integer) 0
127.0.0.1:6379> setbit zhansan 4 1
(integer) 0

最后统计7天内比特值为1的数量
127.0.0.1:6379> bitcount zhansan 0 7 bit

(integer) 4

4、bitop

这个命令是一个复合操作, 它可以做多个Bitmaps的and(交集) 、 or(并集) 、 not(非) 、 xor(异或) 操作并将结果保存在destkey中。格式如下:

bitop and(or/not/xor) <destkey> [key…]

tmp    00010000

tmp2  00111000

and(交集) 、 or(并集) 、 not(非) 、 xor(异或)

127.0.0.1:6379> bitop and tmp3 tmp tmp2
(integer) 1
127.0.0.1:6379> getbit tmp3 0
(integer) 0
127.0.0.1:6379> getbit tmp3 1
(integer) 0
127.0.0.1:6379> getbit tmp3 2
(integer) 0
127.0.0.1:6379> getbit tmp3 3
(integer) 0
127.0.0.1:6379> getbit tmp3 4
(integer) 1
127.0.0.1:6379> getbit tmp3 5
(integer) 0
127.0.0.1:6379> getbit tmp3 6
(integer) 0
127.0.0.1:6379> getbit tmp3 7
(integer) 0

HyperLogLog

PFADD key element [element ...]  添加指定元素到 HyperLogLog 中

PFCOUNT key [key ...]  返回给定 HyperLogLog 的基数估算值

PFMERGE destkey sourcekey [sourcekey ...]  将多个 HyperLogLog 合并为一个 HyperLogLog

127.0.0.1:6379> PFADD myhypher1 a b c d e f
(integer) 1
127.0.0.1:6379> PFADD myhypher2 1 3 5 7 9
(integer) 1
127.0.0.1:6379> PFCOUNT myhypher1
(integer) 6
127.0.0.1:6379> PFCOUNT myhypher2
(integer) 5

127.0.0.1:6379> PFMERGE myhypher1 myhypher1 myhypher2
OK
127.0.0.1:6379> PFCOUNT myhypher1
(integer) 11

Geospatial

geoadd key longitude latitude member [longitude latitude member...]  添加地理位置(经度,纬度,名称)

geopos key member [member...]  获得指定地区的坐标值

geodist key member1 member2 [m|km|ft|mi]  获取两个位置之间的直线距离

georadius key longitude latitude radius [m|km|ft|mi]  以给定的经纬度为中心,找出某一半径内的元素

127.0.0.1:6379> GEOADD beijing 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> GEOADD china:city 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> GEOADD china:city 106.50 29.53 chongqing 116.38 39.90 beijing 114.05 22.52 shenzhen
(integer) 3


127.0.0.1:6379> GEOPOS china:city shanghai
1) 1) "121.47000163793563843"
   2) "31.22999903975783553"


127.0.0.1:6379> GEOPOS china:city beijing chongqing km
1) 1) "116.38000041246414185"
   2) "39.90000009167092543"
2) 1) "106.49999767541885376"
   2) "29.52999957900659211"
3) (nil)

127.0.0.1:6379> GEORADIUS china:city 110 30 100 km
(empty array)
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km
1) "chongqing"
2) "shenzhen"

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

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

相关文章

【排序算法】详解直接插入排序和希尔排序原理及其性能分析

文章目录 插入排序算法原理细节分析代码实现复杂度分析:稳定性分析:与冒泡排序的对比 希尔排序算法原理细节分析代码实现复杂度分析稳定性分析 总结对比 插入排序 算法原理 插入排序又或者说直接插入排序,是一种和冒泡排序类似的并且比较简单的排序方法&#xff0c; 基本思想…

3、Linux下安装

以下操作仅限于rh系列:支持rpm/yum安装方式&#xff0c;不支持deb/apt安装方式。 以下操作仅限于rh系列&#xff1a;支持rpm/yum安装方式&#xff0c;不支持 deb/apt安装方式。 1、在线下载安装包&#xff1a; wget https://downloads.mysql.com/archives/get/p/23/file/ m…

打造个人专属形象!工业级人物写真生成工具FaceChain开源

简介 FaceChain 是一个可以用来打造个人数字形象的深度学习模型工具。用户仅需要提供最低一张照片即可获得独属于自己的个人形象数字替身。FaceChain 支持在 gradio 的界面中使用模型训练和推理能力&#xff0c;也支持资深开发者使用 python 脚本进行训练推理。 Github链接&…

长短期记忆网络(LSTM)

一. 什么是LSTM Long Short Term Memory&#xff08;LSTM&#xff0c;长短期记忆&#xff09;是一种特殊的递归神经网络。这种网络与一般的前馈神经网络不同&#xff0c;LSTM可以利用时间序列对输入进行分析。 简而言之&#xff0c;当使用前馈神经网络时&#xff0c;神经网络会…

Linux 中如何安全地抹去磁盘数据?

哈喽大家好&#xff0c;我是咸鱼 离过职的小伙伴都知道&#xff0c;离职的时候需要上交公司电脑&#xff0c;但是电脑里面有许多我们的个人信息&#xff08;聊天记录、浏览记录等等&#xff09; 所以我们就需要先把这些信息都删除&#xff0c;确保无法恢复之后才上交 即有些…

MongoDB 索引和常用命令

一、基本常用命令 1.1 案例需求 存放文章评论的数据存放到 MongoDB 中&#xff0c;数据结构参考如下&#xff0c;其中数据库为 articledb&#xff0c; 专栏文章评论 comment 字段名称 字段含义 字段类型 备注 _id ID ObjectId或String Mongo的主键的字段 articlei…

海量数据插入的各种方案试验

海量数据插入的各种方案试验&#xff0c;大家来分析下 前提 源表&#xff1a;一千万条以上记录&#xff0c;54个字段.exp导出文件2.8G以上。 目的表&#xff1a;无索引&#xff0c;空表 试验&#xff1a;A.本地插入。B.跨库插入 初始化 SQL> select count…

怎么团队合作,协作开发

一、代码托管平台 我是在大一下的一个竞赛中接触到的代码托管平台 那个时候我也算是什么都不会的&#xff0c;不过不得不说这个确实比较重要&#xff0c;对我造成了一些冲击 在我看来&#xff0c;代码托管平台的作用就是在一个中转站&#xff08;仓库&#xff09;上存储我们写…

自己在家给电脑重装系统Win10教程

自己在家怎么给电脑重装系统Win10&#xff1f;Win10电脑系统如果操作时间特别长了&#xff0c;就可能出现卡顿、蓝屏等系统问题&#xff0c;这时候用户就想给电脑重装系统&#xff0c;却不知道重装具体的操作步骤&#xff0c;下面小编给大家详细介绍自己在家给电脑重装Win10系统…

IRC/ML:金融智能风控—信贷风控场景简介、两大场景(贷款场景+信用卡场景)、信用卡评分模型设计、反欺诈检测技术的简介、案例应用之详细攻略

IRC/ML:金融智能风控—信贷风控场景简介、两大场景(贷款场景+信用卡场景)、信用卡评分模型设计、反欺诈检测技术的简介、案例应用之详细攻略 目录 信贷风控简介 信贷风控两大场景

Java程序中调用Python脚本(兼容Windows与Linux)

一&#xff0c;说明 想实现如下功能&#xff0c;项目后端架构是Spring Boot&#xff0c;某个功能需要调用Python脚本来实现&#xff0c;调用Python脚本的功能要兼容Windows和Linux&#xff0c;即可以运行在Windows和Linux两种平台上。 二&#xff0c;Java代码 // 定义一个线…

k8s-13 存储之secret

Secret 对象类型用来保存敏感信息&#xff0c;例如密码、OAuth 令牌和 ssh key。 敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活 。 Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里 当 kubelet 为 pod 拉…

奖学金答辩注意事项

奖学金答辩注意事项 1.PPT制作 注意字数不要太多&#xff0c;一页PPT里面不要堆满了文字。 评审老师主要是来听你演讲和答辩的&#xff0c;而不是来看你的文字叙述的。就算文字有些多&#xff0c;也要尽量以表格的形式呈现&#xff0c;不然看上去就会非常乱。多用图和表&…

github 中关于Pyqt 的module view 操作练习

代码摘自&#xff0c;Pyside6 中的示例代码部分 # -*- coding: utf-8 -*- import sys from PySide6.QtWidgets import * from PySide6.QtGui import * from PySide6.QtCore import * from PySide6.QtSql import QSqlDatabase, QSqlQueryModel, QSqlQuery import os os.chdir(os…

专业144,总分440+,上岸西北工业大学827西工大信号与系统考研经验分享

我的初试备考从4月末&#xff0c;持续到初试前&#xff0c;这中间没有中断。 总的时间分配上&#xff0c;是数学>专业课>英语>政治&#xff0c;虽然大家可支配时间和基础千差万别&#xff0c;但是这么分配是没错的。 数学 时间安排&#xff1a;3月-7月&#xff1a;…

人声分离软件:iZotope RX 10 (WinMac) 中文汉化版

iZotope RX 10是一款在音频修复和增强领域中非常出色的软件。它提供了一套全面的音频问题解决方案&#xff0c;为后期制作专业人员、音频工程师和视频编辑者解决各种棘手问题。 iZotope RX 10的主要特点包括&#xff1a; 声音修复功能&#xff1a;可以去除不良噪音、杂音、吱吱…

使用Python,Xpath获取所有的漫画章节路径,并下载漫画图片生成单个/多个pdf,并进行pdf合并

使用Python&#xff0c;Xpath获取所有的漫画章节路径&#xff0c;并下载漫画图片生成单个/多个pdf&#xff0c;并进行pdf合并 1 效果图2 原理2.1 pa_mh.py获取喜欢的漫画及所有章节2.2 pyImg2pdf.py根据图片生成单个/多个pdf并增加章节提示 3 源码3.1 pa_mh.py获取喜欢的漫画及…

python的pyecharts第三方模块绘制高端统计图表

pyecharts库 python的pyecharts库是一个用于生成 Echarts 图表的python第三方类库&#xff0c;可以绘制很高端的统计图表以便展示数据。 安装方法 pip安装 pip install pyecharts或者github拉取下载安装 git clone https://github.com/pyecharts/pyecharts.git cd pyechar…

业务安全五重价值:防攻击、保稳定、助增收、促合规、提升满意度

目录 防范各类威胁攻击 保障业务的连续性和稳定性 保障业务的合规性 提升企业营收和发展 提升企业满意度和品牌知名度 2023年暑假被“票贩子”和“黄牛”攻陷。他们利用各种手段抢先预约名额&#xff0c;然后加价出售给游客&#xff0c;导致了门票供不应求的局面&#xff…

HDLbits: Fsm ps2

本题目理解起来有点难&#xff0c;要观察题目中给的三个时序图&#xff0c;通过时序图可以发现&#xff0c;状态有四个&#xff1a;byte1、byte2、byte3&#xff0c;还有一个“&#xff1f;”状态。其中&#xff0c;byte1的下一个状态一定是byte2&#xff0c;byte2的下一个状态…