zoukankan      html  css  js  c++  java
  • redis键值操作

    1.1. redis键值操作

    1.1.1. keys patten 查询相应的key

    可以精确的查,也可以模糊的查

    1.1.1.1. 通配符:* ? []

    redis里,模糊查询key的时候有3个通配符可以用:* ? []

    * 通配任意多个字符

    ?通配单个字符

    [] 通配[]内的某一个字符

    127.0.0.1:6379> keys *

    1) "site"

    2) "animal"

    127.0.0.1:6379> keys a*

    1) "animal"

    127.0.0.1:6379> keys site

    1) "site"

    127.0.0.1:6379> keys anima[len]

    1) "animal"

    127.0.0.1:6379> keys anima[enk]

    (empty list or set)

    注:*表示0或多个任意字符

    1.1.1.2. keys * 获取所有的键值

    设置值:

    127.0.0.1:6379> set site www.baidu.com

    OK

    127.0.0.1:6379> set 'animal' 'cat'

    OK

    获取值:

    127.0.0.1:6379> get 'animal'

    "cat"

    获取所有的键(key):

    127.0.0.1:6379> keys *

    1) "site"

    2) "animal"

    (若没有设置key,则返回:(empty list or set))

    1.1.1.3. randomkey 返回随机key

    127.0.0.1:6379> randomkey

    "site"

    127.0.0.1:6379> randomkey

    "site"

    127.0.0.1:6379> randomkey

    "animal"

    127.0.0.1:6379> randomkey

    "site"

    1.1.1.4. exists key 判断是否存在

    注:如果key存在返回1;不存在返回0

    127.0.0.1:6379> type name

    string

    127.0.0.1:6379> type age

    string

    127.0.0.1:6379> exists name

    (integer) 1

    127.0.0.1:6379> exists age

    (integer) 1

    127.0.0.1:6379> exists ag

    (integer) 0

    127.0.0.1:6379> exists n

    (integer) 0

    1.1.1.5. type key 返回key存储的值的类型

    Key存储的值的类型有:stringlinksetorder sethash

    127.0.0.1:6379> set 'name' 'tom'

    OK

    127.0.0.1:6379> set 'age' 20

    OK

    127.0.0.1:6379> type name

    string

    127.0.0.1:6379> type age

    string

    1.1.1.6. del key1 [key2 key3...keyn] 删除key

    作用:删除一个或多个key(键)

    返回值:返回真正删除的key的数量,不存在的key忽略掉

    127.0.0.1:6379> keys *

    1) "name"

    2) "site"

    3) "animal"

    4) "age"

    127.0.0.1:6379> del site

    (integer) 1

    127.0.0.1:6379> del animal

    (integer) 1

    127.0.0.1:6379> keys *

    1) "name"

    2) "age"

    127.0.0.1:6379> exists site

    (integer) 0

    127.0.0.1:6379> exists animal

    (integer) 0

    127.0.0.1:6379> del a

    (integer) 0

    127.0.0.1:6379> del age cc

    (integer) 1

    1.1.1.7. rename key newkey 修改key的名字

    作用:给key赋一个新的key

    注:如果newkey已存在,则newkey的原值被覆盖

    127.0.0.1:6379> keys *

    1) "name"

    2) "age"

    127.0.0.1:6379> rename age nianling

    OK

    127.0.0.1:6379> keys *

    1) "nianling"

    2) "name"

    127.0.0.1:6379> exists age

    (integer) 0

    127.0.0.1:6379> get name

    "tom"

    127.0.0.1:6379> get nianling

    "20"

    127.0.0.1:6379> rename nianling name

    OK

    127.0.0.1:6379> keys *

    1) "name"

    127.0.0.1:6379> get name

    "20"

    1.1.1.8. renamenx key newkey 修改key的名字

    作用:newkey不存在时,把key改名为newkey

    返回值:修改时返回1;不修改时返回0

    注:nx--->not exists,即newkey不存在时,做改名动作

    127.0.0.1:6379> keys *

    1) "name"

    2) "age"

    3) "a"

    127.0.0.1:6379> renamenx age a

    (integer) 0

    127.0.0.1:6379> keys *

    1) "name"

    2) "age"

    3) "a"

    1.1.1.9. move key db

    注:redis默认开启了16个数据库(可以通过修改配置文件进行修改)

    redis安装目录(:/usr/local/redis/)下的配置文件redis.conf中的:databases 16

    127.0.0.1:6379> keys *   #默认用的是0号数据库

    1) "name"

    2) "age"

    3) "a"

    127.0.0.1:6379> select 1   #注:切换到1号数据库

    OK

    127.0.0.1:6379[1]> keys *

    (empty list or set)

    0号数据库的key移动到1号数据库中:

    127.0.0.1:6379[1]> select 0

    OK

    127.0.0.1:6379> keys *

    1) "name"

    2) "age"

    3) "a"

    127.0.0.1:6379> move age 1

    (integer) 1

    127.0.0.1:6379> keys *

    1) "name"

    2) "a"

    127.0.0.1:6379> select 1

    OK

    127.0.0.1:6379[1]> keys *

    1) "age"

    1.1.2. key的生命周期:

    memcached中的数据做缓存的,都有一个有效期(生命周期);redis中可以做存储(持久),也可以设置有效期

    1.1.2.1. ttl key 查询key的生命周期

    返回值:秒数

    注:

    不过期的key,返回-1

    对于不存在的key、已过期的key,返回-2

    127.0.0.1:6379> keys *

    1) "name"

    2) "a"

    127.0.0.1:6379> ttl a

    (integer) -1

    127.0.0.1:6379> ttl cat

    (integer) -2

    127.0.0.1:6379> ttl c

    (integer) -2

    1.1.2.2. expire key整型值

    作用:设置key的生命周期以秒为单位

    注:pexpire key毫秒数设置生命周期

    pttl key 以毫秒返回生命周期

    127.0.0.1:6379> ttl a

    (integer) -1

    127.0.0.1:6379> expire a 2

    (integer) 1

    127.0.0.1:6379> get a

    (nil)

    127.0.0.1:6379> ttl a

    (integer) -2

    127.0.0.1:6379> expire a 9

    (integer) 1

    127.0.0.1:6379> ttl a

    (integer) 6

    127.0.0.1:6379> ttl a

    (integer) 5

    127.0.0.1:6379> ttl a

    (integer) 4

    1.1.2.3. persist key 设置key永久有效

    作用:把指定key设置为永久有效

    127.0.0.1:6379> expire age 15

    (integer) 1

    127.0.0.1:6379> ttl age

    (integer) 12

    127.0.0.1:6379> persist age

    (integer) 1

    127.0.0.1:6379> ttl age

    (integer) -1

    1.2. flushdb 清空当前数据库中所有的key

    注:此命令从不失败,返回值:总是返回ok

    127.0.0.1:6379> keys *

    1) "name"

    2) "age"

    127.0.0.1:6379> flushdb

    OK

    127.0.0.1:6379> keys *

    (empty list or set)

  • 相关阅读:
    nginx-rtmp-module搭建流媒体服务器
    rabbitmq安装
    opencv+python (3)
    linux命令
    mysql语句概览
    BUUCTF V&N-misc内存取证
    2018 HEBTUCTF 部分misc
    2020 安恒2月月赛 misc
    2018.6.1 铁三数据赛 复现
    2020 i春秋新春战疫公益赛 misc
  • 原文地址:https://www.cnblogs.com/reyinever/p/10041108.html
Copyright © 2011-2022 走看看