zoukankan      html  css  js  c++  java
  • redis02---对于key的操作命令

    Redis对于key的操作命令
    del key1 key2 ... Keyn
    作用: 删除1个或多个键
    返回值: 不存在的key忽略掉,返回真正删除的key的数量
    rename key newkey
    作用: 给key赋一个新的key名
    注:如果newkey已存在,则newkey的原值被覆盖
    renamenx key newkey  
    作用: 把key改名为newkey
    返回: 发生修改返回1,未发生修改返回0
    注: nx--> not exists, 即, newkey不存在时,作改名动作
    move key db
    redis 127.0.0.1:6379[1]> select 2
    OK
    redis 127.0.0.1:6379[2]> keys *
    (empty list or set)
    redis 127.0.0.1:6379[2]> select 0
    OK
    redis 127.0.0.1:6379> keys *
    1) "name"
    2) "cc"
    3) "a"
    4) "b"
    redis 127.0.0.1:6379> move cc 2
    (integer) 1
    redis 127.0.0.1:6379> select 2
    OK
    redis 127.0.0.1:6379[2]> keys *
    1) "cc"
    redis 127.0.0.1:6379[2]> get cc
    "3"
    (注意: 一个redis进程,打开了不止一个数据库, 默认打开16个数据库,从0到15编号,
    如果想打开更多数据库,可以从配置文件修改)
    keys pattern 查询相应的key
    在redis里,允许模糊查询key
    有3个通配符 *, ? ,[]
    *: 通配任意多个字符
    ?: 通配单个字符
    []: 通配括号内的某1个字符
    redis 127.0.0.1:6379> flushdb
    OK
    redis 127.0.0.1:6379> keys *
    (empty list or set)
    redis 127.0.0.1:6379> mset one 1 two 2 three 3 four 4
    OK
    redis 127.0.0.1:6379> keys o*
    1) "one"
    redis 127.0.0.1:6379> key *o
    (error) ERR unknown command 'key'
    redis 127.0.0.1:6379> keys *o
    1) "two"
    redis 127.0.0.1:6379> keys ???
    1) "one"
    2) "two"
    redis 127.0.0.1:6379> keys on?
    1) "one"
    redis 127.0.0.1:6379> set ons yes
    OK
    redis 127.0.0.1:6379> keys on[eaw]
    1)"one"
    randomkey 返回随机key
    exists key
    判断key是否存在,返回1/0
    type key
    返回key存储的值的类型
    有string,link,set,order set, hash
    ttl key 
    作用: 查询key的生命周期
    返回: 秒数
    注:对于不存在的key或已过期的key/不过期的key,都返回-1
    Redis2.8中,对于不存在的key,返回-2
    expire key 整型值
    作用: 设置key的生命周期,以秒为单位
    同理: 
    pexpire key 毫秒数, 设置生命周期
    pttl  key, 以毫秒返回生命周期
    persist key
    作用: 把指定key置为永久有效
    Redis字符串类型的操
    set key value [ex 秒数] / [px 毫秒数]  [nx] /[xx]
    如: set a 1 ex 10 , 10秒有效
    Set a 1 px 9000  , 9秒有效
    注: 如果ex,px同时写,以后面的有效期为准
    如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒
    nx: 表示key不存在时,执行操作
    xx: 表示key存在时,执行操作
    mset  multi set , 一次性设置多个键值
    例: mset key1 v1 key2 v2 ....
    get key 
    作用:获取key的值
    mget key1 key2 ..keyn
    作用:获取多个key的值
    setrange key offset value
    作用:把字符串的offset偏移字节,改成value
    redis 127.0.0.1:6379> set greet hello
    OK
    redis 127.0.0.1:6379> setrange greet 2 x  //从2开始替换
    (integer) 5
    redis 127.0.0.1:6379> get greet
    "hexlo"
    注意: 如果偏移量>字符长度, 该字符自动补0x00
    redis 127.0.0.1:6379> setrange greet 6 !
    (integer) 7
    redis 127.0.0.1:6379> get greet
    "heyyox00!"
    append key value
    作用: 把value追加到key的原值上
    getrange key start stop
    作用: 是获取字符串中 [start, stop]范围的值
    注意: 对于字符串的下标,左数从0开始,右数从-1开始
    redis 127.0.0.1:6379> set title 'chinese'
    OK
    redis 127.0.0.1:6379> getrange title 0 3
    "chin"
    redis 127.0.0.1:6379> getrange title 1 -2
    "hines"
    
    注意: 
    1: start>=length, 则返回空字符串
    2: stop>=length,则截取至字符结尾
    3: 如果start 所处位置在stop右边, 返回空字符串
    getset key newvalue
    作用: 获取并返回旧值,设置新值,更新状态并且获取之前的状态。
    redis 127.0.0.1:6379> set cnt 0
    OK
    redis 127.0.0.1:6379> getset cnt 1
    "0"
    redis 127.0.0.1:6379> getset cnt 2   //设置2并且获得之前的1
    "1"
    incr key    //每次加1
    作用: 指定的key的值加1,并返回加1后的值
    注意:
    1:不存在的key当成0,再incr操作
    2: 范围为64有符号
    incrby key number
    redis 127.0.0.1:6379> incrby age  90   //每次加90
    (integer) 92
    incrbyfloat key floatnumber
    redis 127.0.0.1:6379> incrbyfloat age 3.5     //当成浮点数相加
    "95.5"
    decr key      //每次减一
    redis 127.0.0.1:6379> set age 20   
    OK
    redis 127.0.0.1:6379> decr age
    (integer) 19
    比如抢手机系统,先用redis内存数据库去减手机的数量,这样很快,然后用mysql慢慢去操作购买订单。
    decrby key number
    redis 127.0.0.1:6379> decrby age 3    //每次减3
    (integer) 16
    getbit key offset    //在位的角度操作
    作用:获取值的二进制表示,对应位上的值(从左,从0编号)
    redis 127.0.0.1:6379> set char A   //A的ascii码值是65(0100  0001),a是97(0110  0001)
    OK
    redis 127.0.0.1:6379> getbit char 1
    (integer) 1
    redis 127.0.0.1:6379> getbit char 2
    (integer) 0
    redis 127.0.0.1:6379> getbit char 7
    (integer) 1
    redis 127.0.0.1:6379>setbit char 2 1    //就可以把A变成a,
    redis 127.0.0.1:6379>flushdb        //刷新内存
    setbit  key  offset  value
    设置offset对应二进制位上的值
    返回: 该位上的旧值
    注意: 
    1:如果offset过大,则会在中间填充0,
    2: offset最大大到多少,最大offset是n,那么最大(n+1)位,
    3:offset最大2^32-1,可推出最大的的字符串为512M
    bitop operation destkey key1 [key2 ...]
    对key1,key2..keyN作operation,并将结果保存到 destkey 上。
    operation 可以是 ANDORNOT 、 XOR
    
    redis 127.0.0.1:6379> setbit lower 7 0
    (integer) 0
    redis 127.0.0.1:6379> setbit lower 2 1
    (integer) 0
    redis 127.0.0.1:6379> get lower
    " "
    redis 127.0.0.1:6379> set char Q
    OK
    redis 127.0.0.1:6379> get char
    "Q"
    redis 127.0.0.1:6379> bitop or char char lower
    (integer) 1
    redis 127.0.0.1:6379> get char
    "q"
    
    注意: 对于NOT操作, key不能多个
  • 相关阅读:
    「搬运」影魔
    「不会」斯特林数
    「不会」二项式反演
    「不会」插头dp
    「不会」主定理
    「不会」网络流
    接口和抽象类的区别
    TestNG常用注解
    九九乘法表-Java
    冒泡排序和选择排序--Java
  • 原文地址:https://www.cnblogs.com/yaowen/p/8274337.html
Copyright © 2011-2022 走看看