• Redis的常用命令&集群节点管理


    基本操作

    切换某个库 (默认有0~15个库)

    select [number]
    
    • 1

    查看某个key所占的字节数

    memory usage key
    
    • 1

    删除某个key

    del key			#阻塞删除key
    unlink key		#异步非阻塞删除
    
    • 1
    • 2

    获取所有的key

    keys * 					#慢,大量缓存不建议这样遍历查询
    scan 0 match * count 10000		#快,游标式的遍历
    
    • 1
    • 2

    单节点模式下客户端访问

    redis-cli -a [密码] -h [IP] -p [端口]
    
    • 1

    集群模式下 客户端访问

    redis-cli -a [密码] -c -h [IP] -p [端口]
    
    • 1

    基本类型操作

    字符串(string)

    添加一条String类型数据

    set key value
    
    • 1

    添加一条String类型数据

    mset key1 value1  key2 value2
    
    • 1

    获取某个字符串key的值

    get key
    
    • 1

    自增(默认 +1)

    incr key number
    
    • 1

    自增(默认-1)

    decr key number
    
    • 1

    删除key

    del key
    
    
    • 1
    • 2

    哈希(hash)

    设置属性 (可设置多个key value)

    hset keyname field1 value1  field2 value2
    
    • 1

    获取某个属性值

    hget keyname filed
    
    • 1

    获取key的多个字段

    hmget keyname field1 field2 
    
    • 1

    获取key的所有字段

    hgetall keyname 
    
    • 1

    hash中进行自增、自减

    hincrby keyname filed 10  #增长
    hdecrby keyname filed 10  #减少
    
    • 1
    • 2

    列表(List)

    左进

    lpush key value1 value2 value3
    
    • 1

    左出

    lpop key
    
    • 1

    右进

    rpush key value1 value2 value3
    
    • 1

    右出

    rpop key
    
    • 1

    查看范围

    rlange key cursor number
    
    • 1

    集合(Set)

    添加内容

    sadd key value1 value2
    
    • 1

    查询key里所有的值

    smembers key
    
    • 1

    移除key里面的某个value

    srem key value
    
    • 1

    随机移除某个value

    spop key
    
    
    • 1
    • 2

    判断这个集合里是否有该成员

    SISMEMBER key "string"
    
    • 1

    返回两个set的并集

    sunion key1 key2
    
    • 1

    返回key1剔除交集的那部分(差集)

    sdiff key1 key2
    
    • 1

    跟siffer相反,返回交集

    sinter key1 key2
    
    
    • 1
    • 2

    有序集合(Sorted sets)

    添加元素

    zadd key score value [score value..]
    
    • 1

    获取key的长度

    zcard key
    
    • 1

    获取集合的值并按照score排序 ( 最小的是最上面)

    zrange key start end  		# 排序小到大
    zrevrange key start end		# 排序大到小
    
    • 1
    • 2

    为key中某个值增加 socre分

    zincrby key score value 
    
    • 1

    删除key中的某个值

    zrem key value
    
    • 1

    根据key中的某个value值 ,返回score

    zscore key value
    
    • 1

    移除有序集 key 中,指定排名(rank)区间内的所有成员。【返回个数】

    zremrangebyrank key [start] [stop] 
    
    • 1

    统计key中区间的有几个元素(返回N个)

    zcount key [数值min] [数值max]
    
    • 1

    根据value获取某个值的位置 【获取排序号,默认小到大】

    zrank key value		# 默认小到大排序
    zrevrank key value      # 大到小排序
    
    • 1
    • 2

    根据score值获取区间的value

    zrangebyscore key [score:min] [score:max]	#小到大排序
    zrangebyscore key [score:max] [score:min]	#大到小排序
    
    • 1
    • 2

    返回有序集key中,所有score值介于min和max之间(包含等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列,最小的是最上面

    zrangebyscore key [数值min] [数值max]
    
    • 1

    进阶类型操作

    BitMaps

    bitmaps 更多用法

    指定偏移量bit位置设置值

    SETBIT key offset value
    # SETBIT  user:sign:98:202003 0 1   # 3月1号签到
    # SETBIT  user:sign:98:202003 2 1   # 3月3号签到  
    
    • 1
    • 2
    • 3

    查询指定偏移位置的bit值

    GETBIT key offset
    # getbit user:sign:98:202003 2 #获取用户98的2020年3月3号的value ,0-未签到,1-签到
    
    • 1
    • 2

    统计指定字节区间bit为1的数量 (统计总签到次数)

    BITCOUNT  key [start end]
    # bitcount user:sign:98:202003 	#返回总数
    
    • 1
    • 2

    操作多字节位域 (获取当前月的所有签到数据 , 计算连续签到天数)

    BITFIELD  key [get type offset] [set type offset value] [incrby type offset increment] [overflow wrap/set/fail]
    # bitfield user:sign:98:202203 get u3 0
    # get u3 : 这个u 代表是要求无符号的类型去转进制, 3代表3个
    #但是返回内容是 从二进制转成十进制。
    
    • 1
    • 2
    • 3
    • 4

    查询指定字节区间的第一个被设置成1的bit位的位置

    BITPOS  key bit [start] [end]
    
    • 1

    GEO

    用于地址位置,经纬度计算 ,更多例子

    添加地理位置

    GEOADD key longitude latitude member [longitude latitude mermber...]
    
    # GEOADD location 121.446617 31.205593 'zhangsan'
    # GEOADD location 121.4465774 31.20485103 'lisi' 121.44534 31.2031 'wangwu' 121.4510648 31.2090667 'zhangliu'
    
    • 1
    • 2
    • 3
    • 4

    两点间的距离

    GEODIST key member1 member2 [unit]
    
    # GEODIST location zhangsan lisi m
    "82.4241" 
    
    # GEODIST location zhangsan lisi km
    "0.0824"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    返回标准的Geohash值

    GEOHASH key member [member]
    
    #geohash location zhangsan
    "wtw3e8f9z20"
    
    • 1
    • 2
    • 3
    • 4

    返回key中给定元素的位置信息(经纬度)

    GEOPOS key member [member ...]
    
    # GEOPOS location zhangsan
    121.44661813974380493
    31.20559220971455971
    
    # GEOPOS location zhangsan lisi
    
    "121.44661813974380493
    31.20559220971455971
    121.44657522439956665
    31.20485207113603821"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    返回以某点为圆心,距离为半径的其他位置元素

    GEODIUS key longitude latitude redius m\|km\|ft\|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
    
    # georadius location 121.446617 31.205593 3000 m
    wangwu
    lisi
    zhangsan
    zhangliu
    
    # georadius location 121.446617 31.205593 3000 m WITHCOORD
    wangwu
    121.44534140825271606
    31.20310057881493293
    lisi
    121.44657522439956665
    31.20485207113603821
    zhangsan
    121.44661813974380493
    31.20559220971455971
    zhangliu
    121.45106524229049683
    31.20906731242401833
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    跟georedius一样,只不过圆心是给定的memeber元素

    GEODIUSBYMEMBER key longitude latitude redius m\|km\|ft\|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
    
    # georadiusbymember location zhangsan 3000 m
    wangwu
    lisi
    zhangsan
    zhangliu
    
    # georadiusbymember location zhangsan 3000 m withcoord
    wangwu
    121.44534140825271606
    31.20310057881493293
    lisi
    121.44657522439956665
    31.20485207113603821
    zhangsan
    121.44661813974380493
    31.20559220971455971
    zhangliu
    121.45106524229049683
    31.20906731242401833
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    优化操作指令

    扫描bigkey

    redis-cli --bigkeys
    
    • 1

    获取慢查询日志

    slowlog get n 
    
    • 1

    性能测试

    ./redis-benchmark -a [密码] -h [Ip] -p [端口] -t [指令/命令] -r 100000 -n 1000000 -c 1000
    
    • 1

    Redis信息

    查看Redis(集群、主从、节点)状态以及内存使用情况

    info replication  
    
    • 1

    Redis Cluster 集群

    查看集群信息

    客户端 查看节点信息

    redis-cli -a [登录密码] -c  -h [IP地址] -p [端口] cluster nodes
    
    • 1

    通过check 查看节点信息(列表)

    redis-cli -a [登录密码]  --cluster check [IP+端口]
    
    • 1

    管理节点

    集群 · 添加主节点

    redis-cli --cluster add-node new_host:new_port existing_host:existing_port --cluster-master-id node_id
    
    • 1
    • new_host : new_port : 需要添加节点到集群的IP和端口
    • existing_host : existing_port : 环境中最后存在的IP和端口 (最后是根据槽的位置判定的)
    • node_id : 槽位的最后的主节点id

    集群 · 重新分片

    redis-cli --cluster reshard host:port --cluster-from node_id --cluster-to node_id --cluster-slots  --cluster-yes
    
    • 1
    • host:port : 可写任意集群节点中的IP
    • –cluster-from : 新节点从哪个节点上的槽
    • -cluster-to : 分配给新节点上的槽
    • –cluster-slots : 给多少个槽数 (如果有数据,数据也会一同过去)
    • –cluster-yes : 回显槽的分配情况
  • 相关阅读:
    玩转ChatGPT:参考文献速查
    米尔MYD-JX8MPQ yocto 编译流程 (记录)
    大三第十二周学习笔记
    springMvc2-spring jar包下载
    初次安装Pytorch过程
    鸿蒙元服务上架全攻略 | 四轮驱动,助力元服务澎湃动力
    useGeneratedKeys=“true“ keyProperty=“id“
    前端菜鸟一般不知道css可以这样命名
    如何将jpg转化为png?
    服务器的基本概念与初识Ajax
  • 原文地址:https://blog.csdn.net/limingqiang007/article/details/126160512