• 关于reids的常用命令


    1.redis是一个运行在内存的数据库,他有一个缺点:假如有一个正在编辑的wor文档,突然停电那么这个正在编辑的word文档是会丢失的;所以它诞生了save,bgsave这两个命令,save是保存在磁盘中是同步的(等他保

    1 127.0.0.1:6379> save
    2 OK
    3 127.0.0.1:6379> bgsave
    4 Background saving started

    存完之后才可以输入其他的命令),bgsave是保存在磁盘中在后台保存的异步的

    2.redis的运行,进入安装redis的bin目录,先运行服务端,再运行客户端,ping命令是用来测试连接

    1 [root@localhost ~]# cd /opt/redis
    2 [root@localhost redis]# ./bin/redis-server redis.conf 
    3 [root@localhost redis]# ./bin/redis-cli
    4 127.0.0.1:6379> ping
    5 PONG

    3.redis有五种类型string(相当于JDK中的String+Integer),list(相当于JDK中的linklist),set(相当于JDK中的hashset,无序,不重复),hash(类似JDK中的hashMap,一个大key对应好多的小key于value),zset(相当于JDK中的treeset,排序,有分值的概念)

    4.redis默认使用0数据库,切换到指定数据库:select index,默认有16个库,下标从0-15

    1 127.0.0.1:6379> select 3
    2 OK
    3 127.0.0.1:6379[3]> 

    quit:请求服务器关闭与当前客户端的连接,客户端关闭,服务端没关 1 127.0.0.1:6379[3]> quit 2 [root@localhost redis]# 

    client setname 名字:设置客户端连接的名称;client getname:获取客户端名称

    1 127.0.0.1:6379> client setname 1710d
    2 OK
    3 127.0.0.1:6379> client getname
    4 "1710d"

    client list:返回所有连接到服务器的客户端信息和统计数据

    1 127.0.0.1:6379> client list
    2 id=4 addr=127.0.0.1:42926 fd=6 name=1710d age=133 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

    config set 命令可以动态地调整 Redis 服务器的配置(confifiguration)而无须重启 1 127.0.0.1:6379> config set loglevel notice 2 OK 3 (修改配置) 

    config get 命令用于取得运行中的 Redis 服务器的配置参数

    1 127.0.0.1:6379> config get bind
    2 1) "bind"
    3 2) ""
    4 (获得绑定ip的参数)

    shutdown:关闭客户端与服务端 1 127.0.0.1:6379> shutdown 2 not connected> 

    dbsize:返回数据库中所有key的数量;flushdb:清空当前数据库中的所有 key;flushall:清空整个 Redis 服务器的数据(删除所有数据库的所有 key );type key:查看key的类型;keys *: 匹配数据库中所有 key;

    KEYS h?llo 匹配 hello , hallo 和 hxllo 等。

    KEYS h*llo 匹配 hllo 和 heeeeello 等。

    KEYS h[ae]llo匹配hellohallo,但不匹配hillo

    1 127.0.0.1:6379> dbsize
    2 (integer) 3
    3 127.0.0.1:6379> keys *
    4 1) "Name"
    5 2) "age"
    6 3) "name"
    7 127.0.0.1:6379> type age
    8 string

    dump序列化给定 key ,并返回被序列化的值

    1 127.0.0.1:6379> get name
    2 "test"
    3 127.0.0.1:6379> dump name
    4 "x00x04testx06x00x17}xc7 x99xa4x8cxd6"

    exists key:检查给定的key是否存在;del key[key……]:删除给定的一个或多个key

    1 127.0.0.1:6379> exists name
    2 (integer) 1
    3 127.0.0.1:6379> del age
    4 (integer) 1
    5 127.0.0.1:6379> del name Name
    6 (integer) 2

    move key 1:将当前数据库的 key 移动到给定的数据库 db 当中

     1 127.0.0.1:6379> set name 1
     2 OK
     3 127.0.0.1:6379> move name 2
     4 (integer) 1
     5 127.0.0.1:6379> keys *
     6 (empty list or set)
     7 127.0.0.1:6379> select 2
     8 OK
     9 127.0.0.1:6379[2]> keys *
    10 1) "name"

    randomkey:从当前数据库中随机返回(不删除)一个 key 1 127.0.0.1:6379[2]> randomkey 2 "name" 

    ttl:以秒为单位,返回给定 key 的剩余生存时间,返回值:当 key 不存在时,返回 -2,当 key 存在但没有设置剩余生存时间时,返回 -1,否则,以秒为单位,返回 key 的剩余生存时间

    pttl:这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间

    1 127.0.0.1:6379[2]> ttl name
    2 (integer) -1
    3 127.0.0.1:6379[2]> ttl k
    4 (integer) -2
    5 127.0.0.1:6379[2]> pttl name
    6 (integer) -1

    expire key 30:为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除;pexpire key 10000: 这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间

     1 127.0.0.1:6379[2]> expire name 30
     2 (integer) 1
     3 127.0.0.1:6379[2]> ttl name
     4 (integer) 20
     5 127.0.0.1:6379[2]> pttl name
     6 (integer) 14152
     7 127.0.0.1:6379[2]> pexpire name 10000
     8 (integer) 1
     9 127.0.0.1:6379[2]> ttl name
    10 (integer) 7
    11 127.0.0.1:6379[2]> pttl name
    12 (integer) 2738

    persist key:移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』

     1 127.0.0.1:6379[2]> set k1 20
     2 OK
     3 127.0.0.1:6379[2]> ttl k1
     4 (integer) -1
     5 127.0.0.1:6379[2]> expire k1 20
     6 (integer) 1
     7 127.0.0.1:6379[2]> ttl k1
     8 (integer) 17
     9 127.0.0.1:6379[2]> persist k1
    10 (integer) 1
    11 127.0.0.1:6379[2]> ttl k1
    12 (integer) -1

    rename key namekey:将 key 改名为 namekey

    1 127.0.0.1:6379[2]> rename k1 namekey
    2 OK
    3 127.0.0.1:6379[2]> keys *
    4 1) "namekey"

    5.string类型

    set key value[EX 秒][PX 毫秒]:将字符串值 value 关联到 key 。如果 key 已经持有其他值, SET 就覆写旧值,无视类型;EX与PX都是设置生存时间;

    get key:返回 key 所关联的字符串值。如果 key 不存在那么返回特殊值 nil

    append key value:如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value;

    decr key:将 key 中储存的数字值减一,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作;(递减,只针对于数字)

    decrby key 2:将 key 所储存的值减去减量 2 ,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作;(给定要减去的数值,只针对于数字)

    incr key:将 key 中储存的数字值增一,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作;(递增,只针对于数字)

    incrby key 2:将 key 所储存的值加上增量 2 ,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令;(给定要增加的数值,只针对于数字)

    mset key value[key value……]:同时设置一个或多个 key-value 对;

    mget key[key……]:返回所有(一个或多个)给定 key 的值;

    strlen key:返回 key 所储存的字符串值的长度;

    setrange key 1 yyyy:yyyy参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 1 开始

     1 127.0.0.1:6379> set name 20
     2 OK
     3 127.0.0.1:6379> get name
     4 "20"
     5 127.0.0.1:6379> append name 2
     6 (integer) 3
     7 127.0.0.1:6379> get name
     8 "202"
     9 127.0.0.1:6379> get a
    10 (nil)
    11 127.0.0.1:6379> append a 2
    12 (integer) 1
    13 127.0.0.1:6379> get a
    14 "2"
    15 127.0.0.1:6379> decr a
    16 (integer) 1
    17 127.0.0.1:6379> get a
    18 "1"
    19 127.0.0.1:6379> get name
    20 "202"
    21 127.0.0.1:6379> decrby name 2
    22 (integer) 200
    23 127.0.0.1:6379> incr name
    24 (integer) 201
    25 127.0.0.1:6379> get name
    26 "201"
    27 127.0.0.1:6379> incrby name 2
    28 (integer) 203
    29 127.0.0.1:6379> mset 1 name 2 age
    30 OK
    31 127.0.0.1:6379> mget 1 2
    32 1) "name"
    33 2) "age"
    34 127.0.0.1:6379> strlen name
    35 (integer) 3
    36 127.0.0.1:6379> setrange name 1 yyyy
    37 (integer) 5
    38 127.0.0.1:6379> get name
    39 "2yyyy"

    6.list类型

    lpush key value[value……]:将一个或多个值 value 插入到列表 key 的表头,如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空队列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a;rpush从右向左推;

    lrange key:返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定,下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示,列表的第二个元素,以此类推,你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推

    1 127.0.0.1:6379> lpush 1710d a b c
    2 (integer) 3
    3 127.0.0.1:6379> lrange 1710d 0 -1
    4 1) "c"
    5 2) "b"
    6 3) "a"

    lindex key index:返回列表 key 中,下标为 index 的元素。下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示

    列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类

     1 127.0.0.1:6379> lrange 1710d 0 -1
     2 1) "c"
     3 2) "b"
     4 3) "a"
     5 127.0.0.1:6379> lindex 1710d -1
     6 "a"
     7 127.0.0.1:6379> lindex 1710d -2
     8 "b"
     9 127.0.0.1:6379> lindex 1710d 0
    10 "c"
    11 127.0.0.1:6379> lindex 1710d 2
    12 "a"

    llen key:返回列表 key 的长度。如果 key 不存在,则 key 被解释为一个空列表,返回 0 .如果 key 不是列表类型,返回一个错误。

     1 127.0.0.1:6379> llen 1710d
     2 (integer) 3
     3 127.0.0.1:6379> get key
     4 (nil)
     5 127.0.0.1:6379> llen key
     6 (integer) 0
     7 127.0.0.1:6379> type name
     8 string
     9 127.0.0.1:6379> llen name
    10 (error) WRONGTYPE Operation against a key holding the wrong kind of value

    lrem key count value:根据参数 count 的值,移除列表中与参数 value 相等的元素.count 的值可以是以下几种:count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count ;count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值;count = 0 : 移除表中所有与 value 相等的值;从表头删除 count >0;从表尾 删除 count <0;全部删除 count =0

     1 127.0.0.1:6379> lpush 1710d c c f b c a b c d f d b c a
     2 (integer) 14
     3 127.0.0.1:6379> lrange 1710d 0 -1
     4  1) "a"
     5  2) "c"
     6  3) "b"
     7  4) "d"
     8  5) "f"
     9  6) "d"
    10  7) "c"
    11  8) "b"
    12  9) "a"
    13 10) "c"
    14 11) "b"
    15 12) "f"
    16 13) "c"
    17 14) "c"
    18 127.0.0.1:6379> lrem 1710d 0 a
    19 (integer) 2
    20 127.0.0.1:6379> lrange 1710d 0 -1
    21  1) "c"
    22  2) "b"
    23  3) "d"
    24  4) "f"
    25  5) "d"
    26  6) "c"
    27  7) "b"
    28  8) "c"
    29  9) "b"
    30 10) "f"
    31 11) "c"
    32 12) "c"
    33 127.0.0.1:6379> lrem 1710d 2 d
    34 (integer) 2
    35 127.0.0.1:6379> lrange 1710d 0 -1
    36  1) "c"
    37  2) "b"
    38  3) "f"
    39  4) "c"
    40  5) "b"
    41  6) "c"
    42  7) "b"
    43  8) "f"
    44  9) "c"
    45 10) "c"
    46 127.0.0.1:6379> lrem 1710d -2 b
    47 (integer) 2
    48 127.0.0.1:6379> lrange 1710d 0 -1
    49 1) "c"
    50 2) "b"
    51 3) "f"
    52 4) "c"
    53 5) "c"
    54 6) "f"
    55 7) "c"
    56 8) "c"

    lpop key:移除并返回列表 key 的头元素

     1 127.0.0.1:6379> lrange 1710d 0 -1
     2 1) "c"
     3 2) "b"
     4 3) "f"
     5 4) "c"
     6 5) "c"
     7 6) "f"
     8 7) "c"
     9 8) "c"
    10 127.0.0.1:6379> lpop 1710d
    11 "c"
    12 127.0.0.1:6379> lrange 1710d 0 -1
    13 1) "b"
    14 2) "f"
    15 3) "c"
    16 4) "c"
    17 5) "f"
    18 6) "c"
    19 7) "c"

    7.set类型

    sadd key member[member……]:将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。假如 key 不存在,则创建一个只包含 member 元素作成员的集合

    1 127.0.0.1:6379> sadd myset chjx chjx test
    2 (integer) 2
    3 127.0.0.1:6379> sadd myset chjx a
    4 (integer) 1

    smembers key:返回集合 key 中的所有成员

    1 127.0.0.1:6379> smembers myset
    2 1) "test"
    3 2) "a"
    4 3) "chjx"

    sdiff key key2:返回一个集合的全部成员,该集合是所有给定集合之间的差集。不存在的 key 被视为空集。(差集,前面集合中有,后面集合中没有的元素);

    sinter key key2:返回一个集合的全部成员,该集合是所有给定集合的交集。不存在的 key 被视为空集。当给定集合当中有一个空集时,结果也为空集(根据集合运算定律).(交集,两个集合共同拥有的元素);

    sunion key key2:返回一个集合的全部成员,该集合是所有给定集合的并集。不存在的 key 被视为空集。(两个集合中的所有元素,并且去掉重复的);

     1 127.0.0.1:6379> sadd myset1 chjx lisi test zhangsan
     2 (integer) 4
     3 127.0.0.1:6379> sadd myset2 chjx qianqi wangwu zhaoliu
     4 (integer) 4
     5 127.0.0.1:6379> sdiff myset1 myset2
     6 1) "lisi"
     7 2) "test"
     8 3) "zhangsan"
     9 127.0.0.1:6379> sinter myset1 myset2
    10 1) "chjx"
    11 127.0.0.1:6379> sunion myset1 myset2
    12 1) "qianqi"
    13 2) "zhangsan"
    14 3) "wangwu"
    15 4) "test"
    16 5) "lisi"
    17 6) "chjx"
    18 7) "zhaoliu"

    8.hash类型

    hset key field value:将哈希表 key 中的域 field 的值设为 value 。如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。如果域 field 已经存在于哈希表中,旧值将被覆盖(hmset:是设置多个键值对)

    hget key field:取值(hmget:获取多个)

    1 127.0.0.1:6379> hset myhash name lisi
    2 (integer) 1
    3 127.0.0.1:6379> hget myhash name
    4 "lisi"

    hkeys key:返回哈希表 key 中的所有域

    1 127.0.0.1:6379> hset myhash name lisi
    2 (integer) 1
    3 127.0.0.1:6379> hset myhash age 18
    4 (integer) 1
    5 127.0.0.1:6379> hkeys myhash
    6 1) "name"
    7 2) "age"

    hvals key:返回哈希表 key 中所有域的值

    1 127.0.0.1:6379> hvals myhash
    2 1) "lisi"
    3 2) "18"

    hgetall key:返回哈希表 key 中,所有的域和值

    1 127.0.0.1:6379> hgetall myhash
    2 1) "name"
    3 2) "lisi"
    4 3) "age"
    5 4) "18"

    hincrby key field increment :为哈希表 key 中的域 field 的值加上增量 increment

     1 127.0.0.1:6379> hgetall myhash
     2 1) "name"
     3 2) "lisi"
     4 3) "age"
     5 4) "18"
     6 127.0.0.1:6379> hincrby myhash age 2
     7 (integer) 20
     8 127.0.0.1:6379> hgetall myhash
     9 1) "name"
    10 2) "lisi"
    11 3) "age"
    12 4) "20"

    hlen key:返回哈希表 key 中域的数量 1 127.0.0.1:6379> hlen myhash 2 (integer) 2 

    hexists key field :查看哈希表 key 中,给定域 field 是否存在;

    hdel key field[field……]:查看哈希表 key 中,给定域 field 是否存在;

    1 127.0.0.1:6379> hexists myhash age
    2 (integer) 1
    3 127.0.0.1:6379> hdel myhash age
    4 (integer) 1
    5 127.0.0.1:6379> hexists myhash age
    6 (integer) 0

    9.zset类型(zset中有一个分数score的概念,可以通过这个score来对分数对应的元素排序)

    zadd key score member[score member……]:将一个或多个 member 元素及其 score 值加入到有序集 key 当中。如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个member 元素,来保证该 member 在正确的位置上。score 值可以是整数值或双精度浮点数。如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误;

    zrange key start stop withscores:返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序(withscores连分一起查看);

     1 127.0.0.1:6379> zadd myzset 70 lisi 80 zhangsan 90 wangwu
     2 (integer) 3
     3 127.0.0.1:6379> zrange myzset 0 -1
     4 1) "lisi"
     5 2) "zhangsan"
     6 3) "wangwu"
     7 127.0.0.1:6379> zrange myzset 0 -1 withscores
     8 1) "lisi"
     9 2) "70"
    10 3) "zhangsan"
    11 4) "80"
    12 5) "wangwu"
    13 6) "90"

    zcard key:返回有序集 key 的基数(有几条数据) 1 127.0.0.1:6379> zcard myzset 2 (integer) 3 

    zcount key min max:返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的。(在区间内的元素个数) 1 127.0.0.1:6379> zcount myzset 70 80 2 (integer) 2 

    zincrby key increment member :为有序集 key 的成员 member 的 score 值加上增量 increment 1 127.0.0.1:6379> zincrby myzset 2 lisi 2 "72" 

    zrangebyscore key min max [withscores]:返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列(在区间内的元素)

    1 127.0.0.1:6379> zrangebyscore myzset 70 80
    2 1) "lisi"
    3 2) "zhangsan"
    4 127.0.0.1:6379> zrangebyscore myzset 70 80 withscores
    5 1) "lisi"
    6 2) "72"
    7 3) "zhangsan"
    8 4) "80

    zrank key member:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。排名以 0 为底,也就是说, score 值最小的成员排名为 0 1 127.0.0.1:6379> zrank myzset lisi 2 (integer) 0 

    zrem key member[member……]:移除有序集 key 中的一个或多个成员,不存在的成员将被忽略(可以移除多个)

    1 127.0.0.1:6379> zrem myzset lisi
    2 (integer) 1
    3 127.0.0.1:6379> zrem myzset wangwu zhangsan
    4 (integer) 2

    zremrangebyrank key start stop:移除有序集 key 中,指定排名(rank)区间内的所有成员

    1 127.0.0.1:6379> zadd myzset 70 lisi 80 zhangsan 90 wangwu
    2 (integer) 3
    3 127.0.0.1:6379> zremrangebyrank myzset 0 1
    4 (integer) 2
    5 127.0.0.1:6379> zrange myzset 0 -1
    6 1) "wangwu"

    zremrangebyscore key min max:移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员

    1 127.0.0.1:6379> zadd myzset 70 lisi 80 zhangsan 90 wangwu
    2 (integer) 2
    3 127.0.0.1:6379> zremrangebyscore myzset 70 80
    4 (integer) 2

    zrevrange key start stop [withscores]:返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小)来排列(从大到小排名输出;rev:reverse反转的缩写)

     1 127.0.0.1:6379> zrevrange myzset 0 -1
     2 1) "wangwu"
     3 2) "zhangsan"
     4 3) "lisi"
     5 127.0.0.1:6379> zrevrange myzset 0 -1 withscores
     6 1) "wangwu"
     7 2) "90"
     8 3) "zhangsan"
     9 4) "80"
    10 5) "lisi"
    11 6) "70"

    zrevrangebyscore key max min [withscores]:返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列

     1 127.0.0.1:6379> zrevrangebyscore myzset 90 70
     2 1) "wangwu"
     3 2) "zhangsan"
     4 3) "lisi"
     5 127.0.0.1:6379> zrevrangebyscore myzset 90 70 withscores
     6 1) "wangwu"
     7 2) "90"
     8 3) "zhangsan"
     9 4) "80"
    10 5) "lisi"
    11 6) "70"

    zrevrank key member:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序.(从大到小排序的排名)

    1 127.0.0.1:6379> zrevrangebyscore myzset 90 70 withscores
    2 1) "wangwu"
    3 2) "90"
    4 3) "zhangsan"
    5 4) "80"
    6 5) "lisi"
    7 6) "70"
    8 127.0.0.1:6379> zrevrank myzset lisi
    9 (integer) 2

    zscore key member:返回有序集 key 中,成员 member 的 score 值 1 127.0.0.1:6379> zscore myzset lisi 2 "70" 

  • 相关阅读:
    LOJ #6669 Nauuo and Binary Tree (交互题、树链剖分)
    BZOJ 4734 UOJ #269 [清华集训2016]如何优雅地求和 (多项式)
    UOJ #268 BZOJ 4732 [清华集训2016]数据交互 (树链剖分、线段树)
    Codeforces 1276C/1277F/1259F Beautiful Rectangle (构造)
    UOJ #164 [清华集训2015]V (线段树)
    python – time.sleep – 睡眠线程
    GIL(全局解释器锁)与互斥锁
    python theading线程开发与加锁、信号量、事件等详解
    python装饰器概念与应用
    python中for循环的底层实现机制 迭代
  • 原文地址:https://www.cnblogs.com/liujinqq7/p/12384903.html
Copyright © 2020-2023  润新知