• Redis常用命令集


    一、redis-cli连接redis服务

    1.1 无密码本地登录

    # 无密码登录
    redis-cli
    # 如果需要验证可以使用auth命令
    127.0.0.1:6379> auth [password]
    # 例:
    127.0.0.1:6379> auth 123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.2 指定参数登录

    这些参数都是可选的

    # 语法
    # -h [ip]:指定redis服务ip,不填默认为127.0.0.1
    # -p [port]:指定redis服务端口,不填默认为6379
    # -a [pwd]:指定redis服务登录密码
    # -n [db_number]:指定redis库下标,不填默认0
    redis-cli -h [ip] -p [port] -a [pwd] -n [db_number]
    
    # 例:
    redis-cli -h 192.168.0.100 -p 6379 -a 123456 -n 9
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.3 使用shell连接操作redis

    这里会直接使用shell脚本操作redis-cli来实现数据插入和获取。

    • 编写shell脚本
    #!/bin/bash
    # 插入数据
    echo '开始连接redis插入数据'
    redis-cli -h 127.0.0.1 -a 123456 -n 9 set name Kerwin
    # 获取数据
    redis-cli -h 127.0.0.1 -a 123456 -n 9 get name
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    二、redis运维常用命令

    2.1、查看redis版本信息

    [root@kerwin /]# redis-server -v
    Redis server v=6.0.20 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=22b80d876b6e8f12
    
    • 1
    • 2

    或者客户端输入:info server

    127.0.0.1:6379> info server
    # Server
    redis_version:6.0.20
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:22b80d876b6e8f12
    redis_mode:standalone
    os:Linux 3.10.0-1160.88.1.el7.x86_64 x86_64
    arch_bits:64
    multiplexing_api:epoll
    atomicvar_api:atomic-builtin
    gcc_version:12.2.0
    process_id:1
    run_id:fbed0123d026af0f7094190c7ebe9baedfbb8b8e
    tcp_port:6379
    uptime_in_seconds:3269
    uptime_in_days:0
    hz:10
    configured_hz:10
    lru_clock:2235721
    executable:/data/redis-server
    config_file:/etc/redis/redis.conf
    io_threads_active:0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    2.2、查看服务所有[部分]信息

    使用info [section]查看

    • 1、查看所有信息
      127.0.0.1:6379> info
      
      • 1
    • 2、查看具体信息
      # 服务器信息
      127.0.0.1:6379> info server
      # 持久化信息
      127.0.0.1:6379> info persistence
      
      • 1
      • 2
      • 3
      • 4

    三、redis库相关命令

    # 切换到1号库;redis有16个初始化库,编号0到15,默认使用0号库
    127.0.0.1:6379> select 1
    
    # 查看当前库的key的数量
    127.0.0.1:6379> dbsize
    
    # 删除当前库的全部数据
    127.0.0.1:6379> flushdb
    
    # 删除所有库的全部数据
    127.0.0.1:6379> flushall
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    四、redis key相关命令

    # 查看当前库的全部key
    keys *
    
    # 判断某个key是否存在,存在返回1,不存在返回0
    exists [key]
    
    # 查看某个key的类型,如果key不存在,则返回none
    type [key]
    
    # 删除指定的key数据,成功返回1,失败返回0
    del [key]
    
    # 根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除后在后续异步操作
    unlink [key]
    
    # 查看某个key的过期时间,单位(秒),-1表示永不过期,-2表示已经过期
    ttl [key]
    
    # 给指定的key设置过期时间,单位(秒)
    expire [key] 10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    五、redis 字符串相关命令

    # 添加一条数据 例如set k1 v1,添加key为k1,值为v1的数据
    set <key> <value>
    
    # 得到某个key的数据,例如get k1,得到key为k1的值
    get <key>
    
    # 将给定的value,追加到某key的原值的末尾,返回追加后的字符长度
    append <key> <value>
    
    # 查询某key的值的长度
    strlen <key>
    
    # 当key不存在的时候,才能添加成功,当key存在的时候,不能添加
    setnx <key> <value>
    
    # 将某个key的值,数字增加1,仅仅对数字起作用,如果为空,新增值为1
    incr <key>
    
    # 将某个key的值,数字减少1,仅仅对数字起作用,如果为空,新增值为-1
    decr <key>
    
    # 将key中储存的数字值增减,自定义步长
    incrby/decrby <key> <步长>
    
    # 批量添加
    mset <key1> <value1> <key2> <value2>
    
    # 批量取值
    mget <key1> <key2>
    
    # 批量添加,当且仅当所有的key都不存在(因为原子性,一个失败则都失败)
    msetnx <key1> <value1> <key2> <value2>
    
    # 获取某个key值的范围,getrange k1 0 2,包含0位置的元素,和2位置的元素
    getrange <key> <起始位置> <结束位置>
    
    # 设置键值的同时设置过期时间(单位秒)
    setex <key> <过期时间> <value># 设置新值,并返回旧值
    getset <key> <value>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    六、redis 列表相关命令

    # 从左边,或者右边添加数据
    lpush/rpush <key> <value1> <value2> <value3>
    
    # 从左边,或者右边取出一个值,列表里这个值就不存在了
    lpop/rpop <key>
    
    # 从key1的右边取一个值,添加在key2的左边
    rpoplpush <key1> <key2>
    
    # 按照索引下角标得到元素(从左往右),当结束为值为-1时,代表得到多有,这个值还在列表中
    lrange  <key> <起始位置> <结束位置>
    
    # 按照索引,从左往右获得对应的值
    lindex <key> <index>
    
    # 获得列表长度
    llen <key>
    
    # 在某个key下的某个值的前面/后面添加一个新的值
    linsert <key> before/after <value> <newVlaue>
    
    # 删除某个key下,删除n个值为value的数据
    lrem <key> <n> <value>
    
    # 将某个key下的某个下角标的值换成给定的值
    lset <key> <index> <value>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    七、redis set集合相关命令

    # 添加数据,如果值已经存在,忽略该值
    sadd <key> <value1> <value2> <value3>
    
    # 获取集合中元素数量
    scard <key>
    
    # 得到集合中所有的值
    smembers <key>
    
    # 判断某个key中是否存在value,存在返回1,不存在返回0 scard  :返回集合的元素个数
    sismember <key> <value> 
    
    # 删除某个key中的某些元素
    srem <key> <value1> <value2>
    
    # 从key中随机取出一个值,如果值没了,那么key就不在了
    spop <key>
    
    # 从某个key中,取出n个值,不会从集合中删除
    srandmember <key> <n>
    
    # 把集合中的一个值移动到另一个集合
    smove <key1>  <key2> <value>
    
    # 取两个集合的交集 
    sinter <key1>  <key2>
    
    # 取两个集合的并集 
    sunion <key1>  <key2>
    
    # 取两个集合的差集(在key1中的,不在key2中的)
    sdiff <key1>  <key2>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    八、redis hash相关命令

    # 给某个key哈希表中的field键复制为value
    hset  <key> <field> <value>
    
    # 得到某个key哈希表中某个field的值
    hget <key> <field> 
    
    # 得到某个key哈希表中多个field的值
    hnget <key> <field1> <field2> ...
    
    # 查看key总数
    hlen <key>
    
    # 批量加数据
    hmset <key> <field1> <value1> <field2> <value2>
    
    # 某个key哈希表中某个field是否存在
    hexists <key> <field1>
    
    # 查看某个key哈希表中的全部field
    hkeys <key> 
    
    # 查看某个key哈希表中的全部value
    hvals <key>
    
    # 查看某个key哈希表中全部的key和value
    hgetall <key>
    
    # 为某个key的哈希表中的某个field键的值加上响应的增量
    hincrby  <key> <field> <increment>
    
    # 某个key哈希表中的field键复制为value,当且仅当key不存在的时候成功
    hsetnx  <key> <field> <value>
    
    # 删除key中某个field
    hdel <key> <field>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    九、redis 有序集合(Zset)相关命令

    # 添加以一个过着多个元素,score为评分,集合按照从低到高及进行排序,评分可以重复
    zadd  <key> <score1> <value1> <score2> <value2>
    
    # 获取有序集合中成员的数量
    zcard <key>
    
    # 统计score评分在某个范围内的数据的数量
    zcount <key> <min> <max>
    
    # 查一定范围的元素,end为-1时,查询所有,按照分数从小到大排序,withscores加上他,连着评分一起查出
    zrange <key> <start> <end> [LIMIT offset count] [withscores]
    
    # 查一定范围的元素,end为-1时,查询所有,按照分数从大到小排序,withscores加上他,连着评分一起查出
    zrevrange <key> <start> <end> [LIMIT offset count] [withscores]
    
    # 查询score评分在某个范围内的数据,从小到大排序,min 和 max 可以是 -inf 和 +inf来表示无穷小和无穷大,withscores加上他,连着评分一起查出
    zrangebyscore <key> <min> <max> [withscores]
    
    # 查询score评分在某个范围内的数据,从大到小排序,min 和 max 可以是 -inf 和 +inf来表示无穷小和无穷大,withscores加上他,连着评分一起查出
    zrevrangebyscore  <key> <max> <min> [withscores]
    
    # 为元素的score加上指定的增量
    zincrby  <key> <increment> <value>
    
    # 删除数据
    zrem <key> <value1> <value2>
    
    # 返回集合中value的排名,按分数递增排序。分数值最小者排名为0
    zrank  <key> <value>
    
    # 返回集合中value的排名,按分数递减排序。分数值最大者排名为0
    zrevrank  <key> <value>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    十、redis geo 坐标操作相关命令

    # 添加坐标信息 可以一次性添加多个
    geoadd <key> <longitude> <latitude> <member> ...
    
    # 用于从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),可以一次性指定多个member
    geopos <key> <member> ...
    
    # 用于返回两个给定位置之间的直线距离
    geodist <key> <member1> <member2>
    
    # 根据给定的经纬度,返回半径不超过指定距离的元素 距离单位可选m|km|ft|mi
    georadius <key> <longitude> <latitude> <radius> m|km|ft|mi
    
    # 根据给定元素的经纬度,返回半径不超过指定距离的元素
    georadiusbymember <key> <member> <radius> m|km|ft|mi
    
    # 用于获取一个或多个位置元素的 geohash 值,可以一次性获取多个
    geohash <key> <member> ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    十一、redis BitMap 位图操作相关命令

    # 设置指定偏移量上的位的值(0 或 1)
    SETBIT key offset value
    
    # 获取指定偏移量上的位的值
    GETBIT key offset
    
    # 统计指定范围内所有位的数量,这个范围是以字节为单位的比如start设置成1其实代表8bit,对应偏移量是8开始
    BITCOUNT key [start end]
    
    # 在指定范围内查找第一个被设置为 1 的位或 0 的位
    BITPOS key bit [start end]
    
    # 对位图的指定偏移量进行位级别的读写操作
    ## GET type offset 用于获取指定偏移量上的位,type 可以是 u(无符号整数)或 i(有符号整数),offset 是位图的偏移量。
    ## SET type offset value 用于设置指定偏移量上的位,type 是位的类型,offset 是位图的偏移量,value 是要设置的值。
    ## INCRBY type offset increment 用于递增或递减指定偏移量上的位,type 是位的类型,offset 是位图的偏移量,increment 是递增或递减的值。
    BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment]
    
    # 对一个或多个位图执行指定的位运算操作(AND、OR、XOR、NOT)生成一个新的位图
    BITOP operation destkey key [key ...]
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    springboot之@ImportResource:导入Spring配置文件~
    组装电脑选择硬件怎样辨别真伪好坏
    学校网页设计成品 基于HTML+CSS+JavaScript仿山东财经大学官网 学校班级网页制作模板 校园网页设计成品
    c——顺序结构
    Ubuntu22.04配置Go环境
    【AI大模型】驱动的未来:穿戴设备如何革新血液、皮肤检测与营养健康管理
    【WPF应用30】WPF中的ListBox控件详解
    拓扑排序求最长路
    2022年武汉市仿制药一致性评价政策性奖励申报条件要求以及奖补措施!
    《基础会计学》期末模拟试题及答案
  • 原文地址:https://blog.csdn.net/weixin_44606481/article/details/133672258