zoukankan      html  css  js  c++  java
  • redis的常用命令

    windows 启动redis服务

    先用管理员模式打开cmd,到redis的根目录,再输入下面的命令

    windows 注册服务 (执行后就作为windows服务了)
    redis-server --service-install redis.windows.conf 

    windows 启动服务
    redis-server --service-start

    windows 停止服务
     redis-server --service-stop

     卸载redis服务
    redis-server --service-uninstall

    也可使用 下面命令启动

    redis-server.exe redis.windows.conf 

    输入之后,会显示如下界面:

    查看 redis 是否启动

    $ redis-cli
    

    以上命令将打开以下终端:

    redis 127.0.0.1:6379>
    

     127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。

    redis 127.0.0.1:6379> ping
    PONG
    

    说明我们已经成功安装启动了redis

     

    连接服务

    redis-cli.exe -h 127.0.0.1 -p 6379


    查询字符串

    KEYS pattern 

    查找所有匹配给定的模式的键,keys * 查看所有缓存的键

    127.0.0.1:6379> GET db
    (nil)
     #不存在
    127.0.0.1:6379> SET db redis
    OK
    127.0.0.1:6379> GET db
    "redis"
    #查询成功
    127.0.0.1:6379> keys *
    1) "key4"
    2) "key3"
    3) "sessionid"
    4) "key2"
     
    获取所有key的值
     
    MGET key1 key2 key3 key4 
     
    127.0.0.1:6379> keys *
    1) "key8"
    2) "key5"
    3) "key4"
    4) "db"
    5) "sessionid"
    127.0.0.1:6379> mget key8 key5 key4 db
    1) "8"
    2) "87"
    3) "452"
    4) "3"
    

    获取指定key值的长度

    STRLEN key

    127.0.0.1:6379> get db
    "123"
    127.0.0.1:6379> strlen db
    (integer) 3
    
    设置 一个key 值
     
    set key value
     
    127.0.0.1:6379>  set db abc
    OK
    

    设置一个key的值,只有当key不存在时

    SETNX key value

    127.0.0.1:6379> keys *
    1) "key8"
    2) "key5"
    3) "key4"
    4) "key9"
    5) "db"
    6) "sessionid"
    127.0.0.1:6379> setnx key8 88
    (integer) 0
    127.0.0.1:6379> setnx key10 10
    (integer) 1
    127.0.0.1:6379> keys *
    1) "key8"
    2) "key5"
    3) "key10"
    4) "key4"
    5) "key9"
    6) "db"
    7) "sessionid"
    127.0.0.1:6379> get key10
    "10"
    

    设置key-value,并设置过期时间

     SETEX key seconds value

    127.0.0.1:6379> keys *
    1) "key8"
    2) "key5"
    3) "key10"
    4) "key4"
    5) "key9"
    6) "db"
    7) "sessionid"
    127.0.0.1:6379> setex key10 10 20
    OK
    127.0.0.1:6379> ttl key10
    (integer) -2
    

      

    设置多个key 的值

    MSET key1 value1  key2 value2 key3 value3 key4 value4 

    如果key不存在 则设置一个新的key并赋值

    127.0.0.1:6379> keys *
    1) "key8"
    2) "key5"
    3) "key4"
    4) "db"
    5) "sessionid"
    127.0.0.1:6379> mget key8 key5 key4 db
    1) "8"
    2) "87"
    3) "452"
    4) "3"
    127.0.0.1:6379> mset key8 1 key5 5 key4 4 db 123
    OK
    127.0.0.1:6379> mget key8 key5 key4 db
    1) "1"
    2) "5"
    3) "4"
    4) "123"
    

      

    设置多个key value,仅当key不存在时

    MSETNX key1 value1 key2 value2 key3 value3 

    MSETNX 只要有一个存在的key 则设置全部不成功

    127.0.0.1:6379> keys *
    1) "key8"
    2) "key5"
    3) "key4"
    4) "key9"
    5) "db"
    6) "sessionid"
    127.0.0.1:6379> msetnx key8 235 key10 58
    (integer) 0
    127.0.0.1:6379> msetnx key10 69 key11 11
    (integer) 1
    

      

    追加一个值到key上,返回追加后的value的大小

    APPEND key value

    127.0.0.1:6379> get key4
    "4"
    127.0.0.1:6379> append key4 52
    (integer) 3
    127.0.0.1:6379> get key4
    "452"

    如果key 不存在 会新建一个key

    127.0.0.1:6379> keys *
    1) "key4"
    2) "db"
    3) "sessionid"
    
    127.0.0.1:6379> append key5 57
    (integer) 2
    
    127.0.0.1:6379> keys *
    1) "key5"
    2) "key4"
    3) "db"
    4) "sessionid"
    
    127.0.0.1:6379> get key5
    "57"

    重新设置key的value,并获取设置前的值  

    GETSET key value

    如果key不存在,则设置一个新的key,返回 nill

    127.0.0.1:6379> get key5
    "57"
    127.0.0.1:6379> getset key5 87
    "57"
    127.0.0.1:6379> get key5
    "87"
    

    key不存在

    127.0.0.1:6379> keys *
    1) "key5"
    2) "key4"
    3) "db"
    4) "sessionid"
    127.0.0.1:6379> getset key8 8
    (nil)
    127.0.0.1:6379> keys *
    1) "key8"
    2) "key5"
    3) "key4"
    4) "db"
    5) "sessionid"
    127.0.0.1:6379> get key8
    "8"
    

      

    查询键值:
    get key
    127.0.0.1:6379> GET db
    "redis"
    #查询成功
    

    查询列表中的元素

    lrange key 0 -1

    127.0.0.1:6379> lrange list_name  0 -1
    1) "a"
    2) "b"
    3) "c"
    4) "d"
    5) "e"
    #0 -1代表区间为第一个到最一个
    #可见,在列表中有5个元素
    

      

    删除指定的键值(一个或多个)

    DEL key1 key2 
    127.0.0.1:6379> del db userName
    (integer) 2
    

     

    导出key的值

    dump key

    如果 key 不存在,那么返回 nil。否则,返回序列化之后的值。

    127.0.0.1:6379> dump token
    "x00xc1x95&ax002hxccxbaxu=xac"
    

      

     查询一个key是否存在

    EXISTS key

    如果 key 不存在,那么返回 0。否则,返回1

    127.0.0.1:6379> exists redis
    (integer) 0
    127.0.0.1:6379> exists db
    (integer) 1
    

    设置key的有效时间(秒)

    EXPIRE key time

    127.0.0.1:6379> expire db 200
    (integer) 1
    

      

    获取key的有效时间(秒) 如果key不存在,返回 -2

    ttl db

    127.0.0.1:6379> expire db 20
    (integer) 1
    127.0.0.1:6379> ttl db
    (integer) -2
    
    127.0.0.1:6379> expire db 20000
    (integer) 1
    127.0.0.1:6379> ttl db
    (integer) 19992
    

    设置key的有效时间(毫秒)

    PEXPIRE  key time

    127.0.0.1:6379> pexpire db 2000
    (integer) 1
    

     

    获取key的有效毫秒数(毫秒)

    PTTL key

    127.0.0.1:6379> pexpire db 2000
    (integer) 1
    127.0.0.1:6379> pttl db
    (integer) -2
    
    127.0.0.1:6379> pexpire db 200000
    (integer) 1
    127.0.0.1:6379> pttl db
    (integer) 194559
    

      

    将一个key重命名

    RENAME key newkey

    如果该newkey已经存在了,那就用将被改名的key的value覆盖至与已存在老的newkey的值

    127.0.0.1:6379> set key1 1
    OK
    127.0.0.1:6379> set key2 2
    OK
    127.0.0.1:6379> set key3 3
    OK
    127.0.0.1:6379> set key4 4
    
    127.0.0.1:6379> keys *
    1) "key1"
    2) "key4"
    3) "key3"
    4) "sessionid"
    5) "key2"
    
    127.0.0.1:6379> rename key1 key2
    OK
    127.0.0.1:6379> keys *
    1) "key4"
    2) "key3"
    3) "sessionid"
    4) "key2"
    
    127.0.0.1:6379> get key2
    "1"
    
    127.0.0.1:6379> rename key3 db
    OK
    127.0.0.1:6379> keys *
    1) "key4"
    2) "db"
    3) "sessionid"
    4) "key2"
    
    127.0.0.1:6379> get db
    "3"
    

      

    重命名一个key


     RENAMENX key newkey

    新的key必须是不存在的key

    修改成功时,返回 1 。
    如果 newkey 已经存在,返回 0 。

    127.0.0.1:6379> keys *
    1) "key4"
    2) "db"
    3) "sessionid"
    4) "key2"
    
    127.0.0.1:6379> renamenx key2 db
    (integer) 0
    
    
    127.0.0.1:6379> renamenx key2 key8
    (integer) 1
    
    127.0.0.1:6379> keys *
    1) "key8"
    2) "key4"
    3) "db"
    4) "sessionid"
    
    127.0.0.1:6379> get key8
    "1"
    

    返回一个随机的key  

    RANDOMKEY

    127.0.0.1:6379> randomkey
    "key8"
    

    获取key 的存储类型  

    TYPE key

    127.0.0.1:6379> type db
    string
    

    把key移动到另外一个数据库里 

     move key DBID 

     SELECT dbid  (选择不同的DB)

    redis的DB一共有16个,从 0-15,默认是D0个,我们可以通过命令 SELECT dbid 选择不同的DB,比如select 1;select 15等

    127.0.0.1:6379> keys *
    1) "key8"
    2) "key4"
    3) "db"
    4) "sessionid"
    127.0.0.1:6379> move key8 1
    (integer) 1
    127.0.0.1:6379> keys *
    1) "key4"
    2) "db"
    3) "sessionid"
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> keys *
    1) "key8"
    127.0.0.1:6379[1]>
    

      

    清除当前DB 数据(慎用)

    FLUSHDB  清除当前DB里的所有数据

    FLUSHALL  清除所有的DB里的所有数据

    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> keys *
    1) "key8"
    127.0.0.1:6379[1]> flushdb
    OK
    127.0.0.1:6379[1]> keys *
    (empty list or set)
    

      

     key 值 加1操作

    INCR key

    key值必须为64位有符号整型数据   

    如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

    127.0.0.1:6379> get key8
    "1"
    127.0.0.1:6379> incr key8
    (integer) 2
    127.0.0.1:6379> get key8
    "2"
    
    127.0.0.1:6379> get key5
    "abc"
    127.0.0.1:6379> incr key5
    (error) ERR value is not an integer or out of range
    

      

    key值增加一个整数

    INCRBY key increment

    key值必须为64位有符号整型数据 

    如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

    127.0.0.1:6379> get key8
    "2"
    127.0.0.1:6379> incrby key8 20
    (integer) 22
    127.0.0.1:6379> get key8
    "22"
    127.0.0.1:6379> get key5
    "abc"
    127.0.0.1:6379> incrby key5 20
    (error) ERR value is not an integer or out of range
    

    key值减1

    DECR key

     key值必须为64位有符号整型数据

    如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

    127.0.0.1:6379> get key8
    "22"
    127.0.0.1:6379> decr key8
    (integer) 21
    127.0.0.1:6379> get key8
    "21"
    

    key值减去一个整数

    DECRBY key increment

    key值必须为64位有符号整型数据

    如果key的值不是整数,则报错(error)   如果指定的key不存在,则在执行incr操作之前,会将他的值设为0

    127.0.0.1:6379> get key8
    "21"
    127.0.0.1:6379> decrby key8 10
    (integer) 11
    127.0.0.1:6379> get key8
    "11"
    

      

  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/webqiand/p/10442856.html
Copyright © 2011-2022 走看看