• redis-cli 常用命令及用法


    连接Redis服务器

    连接Redis方案一:在docker环境启动redis-cli

    docker exec -it myredis redis-cli
    如果redis服务器有密码,需要带-a参数
    docker exec -it myredis redis-cli -a "your password"
    myredis表示redis容器名称
    -a 密码

    连接Redis方案二:使用windows版redis-cli.exe客户端启动redis-cli

    redis-cli.exe -h 127.0.0.1 -p 6379
    如果redis服务器有密码,需要带-a参数
    redis-cli.exe -h 127.0.0.1 -p 6379 -a "123456"
    -h 服务器地址
    -p 端口
    -a 密码

    redis-cli 常用命令及用法

    String类型

    set命令

    设置string类型,设置成功返回 OK
    格式:set key value [ex seconds | px millisedonds ] [nx | xx]
    Redis里的key中可以使用冒号(:),这样可以做出命名空间的效果。
    set user:myname "black cat yee"
    set user:myname "black cat yee" ex 120
    ex参数设置过期时间120秒


    get命令

    读取string类型,读取成功返回值,读取失败返回(nil)
    get user:myname

    getset命令

    一个key - value,然后把设置之前的值返回.
    set user:myname "yee"
    getset user:myname "cat yee"
    返回yee,注意取回来的是本次设置之前的值,因为get在前,set在后。


    incr命令

    自增类型,自增1,返回自增后的值
    incr age

    decr命令

    自减类型,自减1,返回自减后的值
    decr age

    incrby命令

    按某个长度自增,返回自增后的值
    incrby age 10

    decrby命令

    按某个长度自减,返回自减后的值
    decrby age 10

    mset 命令

    同时设置多个字符串key
    mset country 中国 provice 湖南 city 长沙

    mget命令

    同时获取多个key的值
    mget country provice city

    exists命令

    判断key是否存在,存在返回1,不存在返回0
    exists country

    del命令

    删除key,删除成功返回1,删除失败返回0
    del city

    同时删除多个key,返回实际删除成功的数值
    del city zipcode email

    expire命令

    设置某个key的过期时间
    格式:expire key 时间(秒)
    expire myname 10
    设置myname键的过期时间为10秒

    ttl 命令
    查看某个key的离过期时间还剩余多少秒
    ttl myname
    查看myname这个缓存key离过期时间还剩余多少秒,返回-1表示未设置过期时间,返回-2表示已经过期了,返回0或正数表示剩余的过期时间

    List类型


    lpush命令

    向List的左侧(头部)添加一个新元素,可以一次性添加多个元素,返回List的总长度

    格式: lpush key member [member 2] [member n]
    lpush mylist "a"
    lpush mylist "b" "c" "d"

    rpush命令

    向List的右侧(尾部)添加一个新元素,可以一次性添加多个元素,返回List的总长度
    格式: rpush key member [member 2] [member n]
    rpush mylist "1"
    rpush mylist "2" "3" "4"

    LRange命令

    可以按索引下标范围取出一个List类型某段范围的值
    格式:LRange list-key 起始索引 结束索引
    如果想获取整个list,起始索引用0,结束索引用-1,-1表示最后一个元素
    Range mylist 0 3
    LRange mylist 0 -1
    起始索引为List的起始索引位置,结束索引为List的结束索引位置,结束索引为-1的时候,取出从0索引到后面所有索引范围的值


    LPOP命令

    从LIst左侧取出并删除一个元素,返回取出元素的值,如果list不存在,则返回null
    LPOP mylist

    RPOP命令

    从List右侧取出并删除一个元素,返回取出元素的值,如果list不存在,则返回null
    RPOP mylist
    当LPOP或RPOP弹出最后一个元素时, 这个list键同时会被删除

    Ltrim 命令

    可以从右边开始对Listf元素进行裁剪,格式为 LTrim listKey start end,返回结果是OK
    格式:Lrim list-key start end
    Ltrim mylist 0 3
    裁前掉右边3个元素


    BRPOP和BLPOP

    这两个命令与RPOP和LPOP类似,如果元素有值,则立即返回最左边或最右边的值,但是当List里没有元素的时候,它可以等待一定的时间,如果这段时间有新元素添加到了List里,那么就会停止等待并返回该元素,否则就会一直等待直到设定的时间结束,然后返回null
    BRPOP listKey 等待时间(秒)
    BLPOP listKey 等待时间(秒)

    BRPOP mylist 5
    BLPOP mylist 5
    例子里表示等待5秒。如果等待时间为0,则会永远等待,要慎用。


    llen命令

    返回List的长度
    格式:llen list-key
    llen mylist

    Set类型(无序集合类型)

    sadd命令

    添加新元素到set,可以同时添加多个元素,如果添加了重复元素,会删除重复的元素,它的元素顺序是无序的,不会按先来后到的顺序显示。

    返回添加成功的元素个数
    格式:sadd set-key member [member 2] [member n]
    sadd myset 789
    给myset添加789这个元素,返回1
    sadd myset a b c d e e e
    这个例子会给myset添加a b c d e 五个元素,多余的e元素自动删除,返回5

    smembers 命令

    获取set所有元素,返回的元素列表是无序的。
    smembers myset

    sismember 命令

    判断某个元素是否在set里,存在则返回1,不存在则返回0.
    sismember myset c

    sinter 命令

    返回交集,可以返回两个或两个以上set的交集,返回每个set集合共同存在的元素。
    格式:sinter key1 [key2] [key3]
    例:
    del myset1 myset2 myset3
    sadd myset1 1 2 3 4 5
    sadd myset2 3 4 5 6 7
    sadd myset3 5 6 7 8 9

    sinter myset1 myset2
    返回: 3 4 5

    sinter myset1 myset2 myset3
    返回: 5


    sinterstore 命令

    返回交集,可以返回两个或两个以上set的交集,返回每个set集合共同存在的元素。
    然后将交集结果保存到目标set。如果只有一个set需要合并的话,那么就相当于是复制。
    格式:sinterstore 目标set-key key1 [key2] [key3]
    例:
    del myset1 myset2 myset3
    sadd myset1 1 2 3 4 5
    sadd myset2 3 4 5 6 7
    sadd myset3 5 6 7 8 9
    sinter myset myset1 myset2 myset3
    这个例子,myset的元素为: 5

    sunion命令

    返回并集,返回多个set之间的并集,并去掉重复的元素
    格式:sunion key1 [key2] [key3]
    例:
    del myset1 myset2 myset3
    sadd myset1 1 2 3 4 5
    sadd myset2 3 4 5 6 7
    sadd myset3 5 6 7 8 9

    sunion myset1 myset2
    返回 1 2 3 4 5 6 7

    sunion myset1 myset2 myset3
    返回 1 2 3 4 5 6 7 8 9


    sunionstore命令

    对多个set集合的元素进行合并,并去掉重复的元素,然后保存到目标set中
    格式:sunionstore 目标set-key key1 [key2] [key3]
    del myset1 myset2 myset3
    sadd myset1 1 2 3 4 5
    sadd myset2 3 4 5 6 7
    sadd myset3 5 6 7 8 9
    sunionstore myset myset1 myset2 myset3
    这个例子,myset的元素为 1 2 3 4 5 6 7 8 9,myset以前的值被覆盖

    sdiff命令

    返回差集,返回第一个集合里面有,而第二个,并且第三个,并且第n个集合里面没有的元素,只要后面任意一个集合有第一个集合的元素,都不返回。
    格式:sdiff key1 [key2] [key3]
    del myset1 myset2 myset3
    sadd myset1 1 2 3 4 5
    sadd myset2 4 5 6 7 8
    sadd myset3 1 7 8 9 10

    sdiff myset1 myset2
    返回 1 2 3

    sdiff myset1 myset3
    返回 2 3 4 5

    sdiff myset1 myset2 myset3
    返回 2 3


    sdiffstore命令

    返回差集,返回第一个集合里面有,而第二个,并且第三个,并且第n个集合里面没有的元素,只要后面任意一个集合有第一个集合的元素。
    然后将结果保存到目标set集合
    格式:sdiffstore 目标set-key key1 [key2] [key3]
    del myset1 myset2 myset3
    sadd myset1 1 2 3 4 5
    sadd myset2 4 5 6 7 8
    sadd myset3 1 7 8 9 10
    sdiffstore myset myset1 myset2 myset3
    这个例子,myset的元素为 2 3


    spop命令

    随机从set中移除一个或多个元素并返回,格式:spop setKey [返回元数个数],
    返回元素个数可写可不写,不写则随机返回1个元素,否则随机返回指定个元素
    如果[返回元素个数]超过set元素的总个数,则返回全部元素
    spop myset
    spop myset 3
    spop myset表示随机返回一个
    spop myset 3 表示顾及机返回三个


    scard 命令

    返回set元素的总个数,如果set不存在,返回0
    scard myset
    如果myset不存在则返回0,存在则返回set元素总个数

    srandmember命令,可以随机获取set里面的一个或多个元素,但不会移除他们。当获取的set元素的key不存在时,返回null。当指定的元数个数大于set里元素的总个数时,返回所有。
    格式:srandmember setKey [number]
    例:srandmember myset
    srandmember myset 3

    Sorted SET 有序集合类型

    Sorted Set有点像Set和Hash的结合体,和Set一样,它里面的元素是唯一的,类型是String,所以它可以理解为就是一个Set。

    但是Set里面的元素是无序的,而Sorted Set里面的元素都带有一个浮点值,叫做分数(score),所以这一点和Hash有点像,因为每个元素都映射到了一个值。
    Sorted Set是有序的,规则如下:
    如果A.score > B.score,那么A > B
    如果A.score == B.score,那么A和B的大小就通过比较字符串来决定,而A和B的字符串是不会相等的,因为Sorted Set里面的值都是唯一的。

    zadd命令

    可以添加元素到Sorted Set,可以同时添加多个元素,分数(score)可以重复,但值不能重复,重复的值不会被添加进去,返回本次成功添加元素的个数。
    格式:zadd sortedSetKey score value [score value] [score value]
    zadd myzset 10 "Li 1"
    zadd myzset 20 "Li 2"
    可以同是用zadd添加多个元素
    zadd myzset 30 "Li 3" 40 "Li 4" 40 "Li 5"

    zrange 命令

    按分数由低到高把Sorted Set的所有元素显示出来
    格式:zrange key startScore endScore [withscores]
    zrange myzset 0 -1
    zrange myzset 0 -1 withscores
    withscores参数把对应的分数显示出来

    zrevrange 命令

    按分数由高到低把Sorted Set的所有元素显示出来,与zrange反序显示
    格式:zrevrange key startScore endScore [withscores]
    zrange myzset 0 -1
    zrange myzset 0 -1 withscores
    withscores参数把对应的分数显示出来

    zrangeByScore 命令

    可以按分数范围显示sorted set的部分元素,只显示在范围内的元素
    格式:zrangebyscore key 分数下限 分数上限
    zrangebyscore myzset 0 59

    zremrangebyscore 命令

    按分数范围删除元素,返回删除元素的个数
    格式:zremrangebyscore key startScore endScore
    zremrangebyscore myzset 30 40

    zrank 命令

    按分数从低到高获得sorted set里面某个元素值的排名,如果该元素不存在,返回空。排名从0开始,0表示排第一,1表示排第二,2表示排第三。
    格式:zrank key member
    zrank myzset "yee 2"
    返回排名

    zrevrank 命令

    按分数从高到低获得sorted set里面某个元素值的排名,如果该元素不存在,返回空。排名从0开始,0表示排第一,1表示排第二,2表示排第三。
    格式:zrevrank key member
    zrevrank myzset "yee 2"
    返回排名

    Hash类型

    hash有点像javascript里面的object对象,一个hash里面可以存储多个field-value,每个field相当于一个二级key。

    hash里面的值作为string类型存储,但是如果filed里面的值可以解释为数字,也可以对其进行自增或自减操作。

    hset命令

    设置hash里面的值,返回设置field的个数,但是当某个field已经存在时,这个field的值不会覆盖,会hset失败。
    格式:hset hash-key field1 value1 [field2 value2 ...]
    hash中的key也可以使用冒号(:),这样可以做出命名空间的效果。
    hset user:yee name "black cat"
    可以同时设置多个field及值,返回filed的个数。
    hset user:yee name "black cat"
    hset user:yee age 20 born "2000-6-9" addr "shang hai"

    hmset 命令

    设置hash里多个field,如果被设置的field已经存在,就更新field的值,不存在则添加一个新的 field。
    格式 hmset hash-key field1 value1 [field2 value2 ...]
    hmset user:yee name "black cat" age 18

    hsetnx 命令

    如果hash里存在某个field,则不会添加field并返回0,如果不存在field,则添加新的field并返回1。
    格式:hsetnx hash-key field value
    hsetnx user:yee tel 15099996666

    hget命令

    获取hash key里单个field的值,如果key或filed不存在,则返回null
    格式 :hget hash-key field
    hget user:yee name


    hmget 命令

    获取hash key里多个field的值。如果field不存在则返回null。
    格式:hmget hash-key field1 [field2 ...]
    hmget user:yee name age addr


    hgetall 命令

    获取某个hash-key中的所有field名称及值,field与value都返回
    格式:hgetall hash-key
    hgetall user:yee

    hincrby 命令

    如果hash里某个field值的类型可以转换成数值,可以用来做自增或自减操作,返回自增或自减后的值。
    格式 hincrby hash-key field incrment
    incrment为正数表示自增,为负数表示自减,如果field不存在,新增一个field。
    hincrby user:yee count 1
    hincrby user:yee count -1

    hincrbyfloat 命令

    如果hash里某个field值的类型可以转换成数值,可以用来自增或自减少数,返回自增或自减后的值。如果 field不存在,则新增field。
    格式: hincrbyfloat hash-key field increment
    hincrby user:yee count 3.2
    hincrby user:yee count -2.1

    hdel 命令

    删除某个hash里的字段,可以同时删除多个field,返回删除field的个数,如果field不存在,就忽略删除,并且不计入删除个数。
    格式: hdel hash-key field [field ...]
    hdel user:yee addr count

    hexists 命令

    判断hash某个field是否存在,存在返回1,不存在返回0。
    格式:hexists hash-key field
    hexists user:yee name

    hkeys 命令

    返回某个hash里的所有field的名称数组。
    格式:hkeys hash-key
    hkeys user:yee

    hvals 命令

    返回某个hash里所有field的值数值
    格式:hvals hash-key
    hvals user:yee

    hlen 命令

    返回某个hash里所有field的总个数。
    格式:hlen hash-key
    hlen user:yee

    其它


    flushall命令

    清理所有key,全部删除

  • 相关阅读:
    字符设备驱动程序
    内存管理
    在React中使用context来传递属性
    iTerm2保存登录密码
    Mac OS设置终端 autocomplete 大小写不敏感
    Linux下安装Google SDK 配置Google API翻译环境
    使用Shell远程给Linux安装JDK
    Linux下wget命令 指定下载文件路径
    linux下解压/压缩命令
    获取鼠标在屏幕上的位置
  • 原文地址:https://www.cnblogs.com/yyee/p/12828643.html
Copyright © 2020-2023  润新知