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

    一、redis 数据结构
    丰富的数据结构

    hash、链表、集合、有序集合等

    1.通用键值操作

    --字符串类型
    set site www.zixue.it
    set age 29

    --如何获取当前所有的key 值
    keys *

    keys pattern 匹配模式;查询相应的key


    redis 允许模糊查询

    --常用三个通配符
    1.* 通配任意多个字符字符
    2.?通配任意单个字符
    3.[] 通配[]括号内的某一个字符

    --精确查询

    keys site

    ---模糊查询

    keys s*
    keys sit*
    keys sit[ey] ---不确定最后的字符是 e 还是 y --类似正则表达式

    ---中间字符记不清楚,并且只有一个字符
    keys si?e --返回结果 site

    --随机拿一个key

    randomkey 返回随机key


    --判断key 类型

    type age


    ---判断一个key 是否存在

    exist age ---返回结果是1 表示有;0表示没有

    ---删除key
    del age

    ---修改key site 名字
    rename site wangzhi

    --renamenx 假如你修改的那个 key 的新名字,已经存在了呢?

    --测试一下
    del wangzhi

    set site www.zixue.it

    set search www.so.com

    rename site search


    ----问题:现在 search 的key值是什么?
    get search
    www.zixue.it
    --那么 之前 search 值就被覆盖了

    ---避免和已经存在的key 名字,发生冲突---一个新的命令,renamenx 等于 not exist

    --先恢复原装

    set site www.zixue.it

    set search www.so.com

    renamenx---如果存在,就修改失败;如果不存在,则修改成功
    renamenx site sea --返回 1
    get sea
    www.zixue.it

    renamenx sea search ---返回0

    keys * ---发现确实修改失败
    search
    sea

    get search
    www.so.com

    --移动 key

    ---单机 redis 默认 配置文件中 给开启了 databases 16 ---默认使用的是 0 号 database

    keys *
    search
    sea


    select 1 ---切换其他库
    keys * ---返回空

    --redis 默认16个库
    分别从0-15

    默认操作都是在 0号数据库操作

    --某个key 不想删除,又不想在0号库,给她挪动到 1号库

    move sea 1
    keys *
    search
    ---切库到1
    select 1
    keys *
    sea


    ---key 生命周期,什么时候 key 失效???

    --默认没有有效期:原因是 存储。不是缓存;但是可以手动设置有效期

    expire

    select 0

    keys *
    search

    ---查询 search 这个key 还可以 活多久?
    --查询有效期
    ttl search 返回 -1 ;-1 代表永久有效

    --对于不存在的key 返回也是 -1 ;表示永久有效

    ttl aaaa ---返回-1

    ttl 查询key 返回的是一个 秒数


    --默认对于不存在的key 或者已经过期的key 或者不过期的key 返回都是 -1;容易混淆

    redis 2.8 中,对于 不存在的key 返回 -2


    --设置 过期时间

    expire key 周期值

    ttl search --返回 -1

    expire search 10 ---生命周期10秒

    通过 get search ---10秒后发现不存在了,原因是:过期了

    ---重启 设置key

    set site www.zixue.it ---默认永久有效

    expire search 10

    --查询生命周期

    ttl search

    ---最后出现 -1

    ttl查询和expire 都是按照秒为单位

    ----如果想毫秒做单位
    使用 pttl pexpire


    set search www.zixue.it

    pexpier search 9000 设置9000 毫秒

    pttl search --查询还有多少毫秒

    ---设置key 永久有效

    set site www.zixue.it

    expire site 10

    ttl site

    persist site --设置永久生效

    ttl site ---返回值 -1

  • 相关阅读:
    idea 的搭建 maven spark开发环境
    自己的简单数据分析流程
    自己对golang中各个文件的理解
    通用android studio gradle 文件(电商商家版,两个gradle不同)
    android与golang的http请求
    Leetcode 98 验证二叉搜索树
    leetcode 830较大分组的位置
    Leetcode 种花问题
    leetcode 86 分割链表
    Leetcode 509 斐波那契数
  • 原文地址:https://www.cnblogs.com/ss-33/p/11171975.html
Copyright © 2011-2022 走看看