redis常用命令行

redis 命令:
redis完整命令行可以参考官网:

https://redis.io/commands
一. redis-cli 客户端命令行工具
[root@dev ~]# /root/redis/src/redis-cli -h
redis-cli 3.2.13

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
  -h <hostname>      Server hostname (default: 127.0.0.1).
  -p <port>          Server port (default: 6379).
  -s <socket>        Server socket (overrides hostname and port).
  -a <password>      Password to use when connecting to the server.
  -r <repeat>        Execute specified command N times.
  -i <interval>      When -r is used, waits <interval> seconds per command.

连接本地:

redis-cli

连接远端redis

redis-cli -h host -p port -a password
二.命令

键(key)

  1. keys *
    注意: 由于redis是单线程的,因此在redis key数量很多的时候禁用该命令,否则容易引起生产应用夯机现象
    如果一定要使用,除非能确定数据量不大,或者在一个没有被使用的集群节点上使用

  2. set key value
    例如: set test test1

  3. get key
    例如: get test

  4. dbsize 键值总数
    该命令不会遍历redis, 而是直接获取redis内置的计算总数变量
    127.0.0.1:6379> dbsize
    (integer) 6

  5. exists key 检查key是否存在

    127.0.0.1:6379> exists test
    (integer) 1

  6. del key 删除

    127.0.0.1:6379> del test
    (integer) 1
    127.0.0.1:6379> exists test
    (integer) 0

  7. expire key seconds 设置过期时间

    127.0.0.1:6379> expire test 10
    (integer) 1

  8. ttl 获取key剩余过期时间 返回值-1说明没有设置过期时间, -2 则表示过期
    127.0.0.1:6379> ttl test
    (integer) -2

  9. type key 返回key数据类型

    127.0.0.1:6379> type test
    string

字符串:

可以应用于 缓存, 计数, 共享session, 限速限制频率等

  1. set key value [EX seconds] [PX milliseconds] [NX|XX]
    ex 过期时间,单位秒
    px 设置毫秒级国企时间
    nx 键必须不存在,才可以成功
    xx 键存在才可以成功,用于更新

  2. mset批量设置key

    127.0.0.1:6379> mset test1 1 test2 2 test3 3
    OK

  3. mget 批量获取值

    127.0.0.1:6379> mget test1 test2

    1. “1”
    2. “2”

其中mset mget 批量执行在一定情况下可以显著提升性能,时间复杂度是O(1), 而分开则可能是O(N) 还有更多的网络延迟消耗
但是如果批量的执行量特别大,又可能造成应用夯住, 因此需要合理评估使用

  1. incr 计数
    incr count
    如果count不存在, 则新建key count 并加1 返回1

  2. 自减
    decy key

  3. strlen key 获取key值的长度

哈希:

  1. hset key field value

    127.0.0.1:6379> hset user tom 111
    (integer) 1

  2. hget key field 获取

    127.0.0.1:6379> hget user tom
    “111”

  3. HDEL key field [field …] 删除

    127.0.0.1:6379> HDEL user tom
    (integer) 1

  4. hlen 健个数

    127.0.0.1:6379> hlen user
    (integer) 0

  5. hmset key field value [field value …] 批量设置

    127.0.0.1:6379> hmset user tom 111 jim 112
    OK

  6. HMGET key field [field …] 批量获取值

    127.0.0.1:6379> HMGET user tom jim

    1. “111”
    2. “112”
  7. hkeys 获取keys的值, hvals获取值内容

    127.0.0.1:6379> hkeys user

    1. “tom”
    2. “jim”
      127.0.0.1:6379> HVALS user
    3. “111”
    4. “112”
  8. hgetall key 获取所有值

    127.0.0.1:6379> HGETALL user

    1. “tom”
    2. “111”
    3. “jim”
    4. “112”

列表:

可以用于阻塞消息队列

  1. RPUSH key value [value …]

  2. lrange key start stop 获取列表

  3. LINDEX key index 获取指定索引下标元素

  4. lpop/ rpop 左弹出, 右弹出值,

  5. LREM key count value 删除指定元素

  6. LSET key index value 修改指定索引下标的元素u

  7. blpop key [key …] timeout
    brpop key [key …] timeout

blpop brpop 是lpop和rpop的阻塞版本,防止在其他线程更新或获取值

集合:
可以适用于tag 标签

  1. SADD key member [member …] 添加元素

  2. SREM key member [member …] 删除元素

  3. SCARD key 计数, 元素个数

  4. SISMEMBER key member 判断值是否存在key中

  5. SRANDMEMBER key [count] 随机返回指定count个元素

  6. spop key 随机弹出值

  7. SMEMBERS key 获取所有元素

  8. sdiff key [key] 比较集合的不同

  9. SINTER key [key …] 求交集

  10. SUNION key [key …] 求并集

有序集合
添加集合
zadd ke score member [score member…]

ZADD test 1 r1 2 r2 3 r3

计算集合:
ZCARD key

ZCARD testm

计算某个成员的分数:
ZSCORE key member

ZSCORE testm r1

计算成员的排名:
zrank key member

127.0.0.1:6379> zrank testm r3
(integer) 2

删除成员:
ZREM key member [member …]

增加成员分数
值需要是float类型
ZINCRBY key increment member

ZINCRBY testm increment r2

返回指定返回值:
ZRANGE key start stop [WITHSCORES]

127.0.0.1:6379> ZRANGE  testm 1 2
1) "r2"

集合操作:

交集:
ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

127.0.0.1:6379> ZADD testm2 1 r4 2 r5 3 r6
(integer) 3
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> ZRANGE testm 0 -1
1) "r1"
2) "r2"
127.0.0.1:6379> ZINTERSTORE test_inter 2 testm testm2 
(integer) 0

并集:
ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

27.0.0.1:6379> ZUNIONSTORE test_inter 2 testm testm2
(integer) 5
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> 
127.0.0.1:6379> ZRANGE test_inter 0 -1
1) "r1"
2) "r4"
3) "r2"
4) "r5"
5) "r6"


127.0.0.1:6379> ZRANGE test_inter 0 -1 withscores
 1) "r1"
 2) "1"
 3) "r4"
 4) "1"
 5) "r2"
 6) "2"
 7) "r5"
 8) "2"
 9) "r6"
10) "3"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值