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

    一、通用操作

    1、添加字符串(返回结果OK,默认生命周期为永久有效)

    set age 30
    set site baidu.com

    2、keys pattern 查找相应的key

    redis里,允许模糊查询。有3个通配符 *,?,[]

    1 keys *     模糊查询 列出所有结果key
    2 keys sit[efygk] 模糊查询
    3 keys s*    模糊查询 
    4 keys age   精确查询
    5 keys ??? 模糊查询 列出一个key(注:字母排序第一的出现)
    6 keys ag? 模糊查询 (没有意义,已3个字符串为例的键来说,必须输出前2个加?方可使用,否则提示empty or set)

    3、随机出现key名

    randomkey

    4、返回key的存储类型

    type age

    5、判断一个key是否存在(返回结果:存在?1:0)

    exists age

    6、删除一个key(返回结果:成功?1:0)

    del age

    7、修改键名(返回结果:OK)

    rename site siteurl

    8、renamenx  key newkey

    作用:修改当前键名,赋值的新键名。返回结果:存在?1:0

    site siteurl sohu.com
    renamenx site siteurl

    9、move key  1

    一个redis进程,打开了不止一个数据库,默认打开16个数据库,编号0-15

    1 keys *
    2 move age 1
    3 keys *
    4 select 1  (选择编号1的数据库)
    5 keys *

    10、查询key的有效期(注:-1代表永久有效,不存在的key返回-2。返回的秒数)

    ttl newsite

    11、设置key的生命周期(时间:秒)

    expire newsite 20                                                                            

    12、设置毫秒(成功返回1)

    pexpire newsite 9000
    pttl newsite

    13、设置key的生命周期(永久有效,成功返回1)

    persist age

    14、清空数据库

    flushdb

    二、String类型的操作

    1、set key value [ex 秒数] /[px 毫秒数] [nx]/[xx]

    nx:表示key不存在时,执行操作

    xx:表示key存在时,执行操作

    注:如果ex和px同时写,以后面的有效期为准

    set search sina.com ex 10 nx

    2、一次设置多个键值

    mset a 123 b 456 c678 d 91011
    keys *

    3、一次获取多个键值

    mget a b c

    4、setrange key offset value(设置偏移量)

    1 set aa hello
    2 setrange aa 2 ??
    3 get aa

    注:如果偏移量>字符串长度,字符串自动以x00来补充

    5、append key value (尾部追加值)

    append aa wold

    6、getrange key start stop(获取指定范围内的值,返回结果:值)

    getrange aa 0 2

    注:

    1. start>=length 返回字符串
    2. stop>=length 截取至字符串
    3. start所处位置在stop右边,返回空字符串

    7、getset key value(执行成功之后,结果中:返回上一次的值,并设置新值,然后在运行get key,即可得到刚刚getset的新值)

    getset aa helloworld

    8、incr key number(age+1,返回结果:值)

    incr age

    9 decr key number

    decr age

    10、incrby age  number

    incrby age 5(原有值加5)

    11、decrby age number

    12、incrbyfloat key floatnumber

    incrbyfloat age 0.5

    13、setbit key offset value(设置offset对应的二进制位上的值,返回该位上的值)

    注:1、偏移量过大,则会在中间填充0;2、offset最大大到多少:512MB

    set a a
    setbit a 2 0(返回结果大A)

    14、bitop operation destkey key1 [key2...]

    对key1,key2..keyN作operation并将结果保存到destkey 上。

    operation可以是and、or、not、xor

    setbit lower 2 1
    set char Q
    bitop or char char lower

    注:对于not操作,key不能多个

    三、link 链表结果

    1、lpush key value(把值插入到链接头部)

    2、rpush key value

    3、lrange key start stop[返回链表中[start stop]中的元素。规律:左数从0开始,右数从-1开始]

    lrange character 0 -1 取出所有数据

    4、rpop key 返回并删除链表尾部元素

    5、lpop key

    6、lrem key count value

    • 从链表中删除value的值
    • 注:删除count的绝对值个value后结束
    • count>0从表头开始删除
    • count<0从表尾开始删除
    1 lpush answer a b c a b d a
    2 lrange answer 0 -1
    3 lrem answer 1 a
    4 lrange answer 0 -1

    结果:b c a b d a(左到右开始删除。如果要从尾部开始,则为-1)

    7、ltrim key start stop 截取

    1 rpush character a b c d e f
    2 lrange character 0 -1
    3 ltrim character 2 5
    4 lrange character 0 -1

    8、lindex key index 返回index索引上的值

    lindex character 1

    9、llen key 统计元素个数

    llen character

    10、linsert num before value value在某个值前面插入值(失败返回-1,成功返回元素个数)

    1 rpush num 1 3 4 5 6 7 8
    2 lrange num 0 -1
    3 linsert num before 3 2
    4 lrange num 0 -1
    5 结果 1 2 3 4 5 6 7 8

    11、linser num after value value

    12、bpro,blpop  key  timeout

    作用:等待弹出key的尾/头元素

    场景:长轮询 ajax,在线聊天

    brpop num 20

    四、Hash 哈希数据类型相关命令

    1、hset key field value

    作用: keyfiled域的值设为value

    :如果没有field,直接添加,如果有,则覆盖原field域的值

    hset user1 name zhangsan
    hset user2 age 20
    hset height 190

     2、hmset  key field value[field value]

    作用: 设置field1->N 个域, 对应的值是value1->N

    (对应PHP理解为  $key = array(file1=>value1, field2=>value2 ....fieldN=>valueN))

    hmset user2 name lisi age 21 height 190
    

    3、hgetall key 获取多个值

    hgetall user2

    4、hget key field 获取指定name的value

    hget user2 name

    5、hlen key查看有多少个值域

    hlen user2

    6、hdel key field 删除一个name

    hdel user2 name

    7、hexists key field 判断key中有没有field域

    hexists user2 age

    8、hincrby key field increment  key中的field域的值增长整型值value

    hincrby user1 age 20

    8、hincrbyfloat key field increment  把key中的field域的值增长整型值value()

    hincrbyfloat user1 age 0.5

    9、hkeys key 返回key中的所有域

    hkeys user1

    10、hvals key 返回所有的值

    hvals user1
  • 相关阅读:
    bzoj 1071: [SCOI2007]组队
    bzoj 4872: [Shoi2017]分手是祝愿
    (python)循环中动态产生变量
    Python中的exec、eval的区别
    MATLAB中feval与eval的区别
    用intellij idea 写第一个Java程序
    Python词云的中文问题
    python里的apply,applymap和map的区别
    Python 正则表达式匹配小数
    字典的深拷贝与浅拷贝
  • 原文地址:https://www.cnblogs.com/xb88/p/8637540.html
Copyright © 2011-2022 走看看