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"
    

      

  • 相关阅读:
    javase 超市库存系统
    Javase 简单代码练习
    Javase 简单练习
    SQL表连接查询
    SQL多表查询
    SQL表查询
    SQL数据查询2
    SQL数据查询
    SQL增删改
    AutoCompleteTextView的使用
  • 原文地址:https://www.cnblogs.com/webqiand/p/10442856.html
Copyright © 2011-2022 走看看