Redis-02-笔记

Posted 寻7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis-02-笔记相关的知识,希望对你有一定的参考价值。

Redis常用指令

在这部分中呢,我们将学习两个知识,第一个是key的常用指令,第二个是数据库的常用指令。和前面我们学数据类型做一下区分,前面你学的那些指令呢,都是针对某一个数据类型操作的,现在学的都是对所有的操作的,来看一下,我们在学习Key的操作的时候,我们先想一下的操作我们应该学哪些东西:

1、key 操作分析

1.1 key 应该设计哪些操作?

key是一个字符串,通过key获取redis中保存的数据

对于key自身状态的相关操作,例如:删除,判定存在,获取类型等

对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等

对于key快速查询操作,例如:按指定策略查询key

1.2 key 基本操作

  • 删除指定key

    del key
    
  • 获取key是否存在

    exists key
    
  • 获取key的类型

    type key
    
  • 排序

    sort
    
  • 改名

    rename key newkey
    renamenx key newkey    存在则改不存在则不改
    

1.3 key 扩展操作(时效性控制)

  • 为指定key设置有效期

    expire key seconds
    pexpire key milliseconds
    expireat key timestamp
    pexpireat key milliseconds-timestamp
    
  • 获取key的有效时间(返回-1表示永久有效 -2表示目前不存在)

    ttl key
    pttl key
    
  • 切换key从时效性转换为永久性

    persist key
    

1.4 key 扩展操作(查询模式)

  • 查询key

    keys pattern
    
  • 查询模式规则 pattern
    *匹配任意数量的任意符号 ? 配合一个任意符号 [] 匹配一个指定符号

    keys *  keys    查询所有
    it*  keys       查询所有以it开头
    *heima          查询所有以heima结尾
    keys ??heima    查询所有前面两个字符任意,后面以heima结尾 查询所有以
    keys user:?     user:开头,最后一个字符任意
    keys u[st]er:1  查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
    

2、数据库指令

2.1 key 的重复问题

在这个地方我们来讲一下数据库的常用指令,在讲这个东西之前,我们先思考一个问题:

假如说你们十个人同时操作redis,会不会出现key名字命名冲突的问题。

一定会,为什么?因为你的key是由程序而定义的。你想写什么写什么,那在使用的过程中大家都在不停的加,早晚有一天他会冲突的。

redis在使用过程中,伴随着操作数据量的增加,会出现大量的数据以及对应的key。

那这个问题我们要不要解决?要!怎么解决呢?我们最好把数据进行一个分类,除了命名规范我们做统一以外,如果还能把它分开,这样是不是冲突的机率就会小一些了,这就是咱们下面要说的解决方案!

2.2 解决方案

redis为每个服务提供有16个数据库,编号从0到15

每个数据库之间的数据相互独立

在对应的数据库中划出一块区域,说他就是几,你就用几那块,同时,其他的这些都可以进行定义,一共是16个,这里边需要注意一点,他们这16个共用redis的内存。没有说谁大谁小,也就是说数字只是代表了一块儿区域,区域具体多大未知。这是数据库的一个分区的一个策略!

2.3 数据库的基本操作

  • 切换数据库(默认使用0号数据库)

    select index
    
  • 其他操作(查看服务器是否连通)

    ping
    

2.4 数据库扩展操作

  • 数据移动

    move key db
    
  • 数据总量

    dbsize			当前数据库数据量
    
  • 数据清除

    flushdb		清除当前库数据
    flushall			清除全部数据库数据
    

以上是关于Redis-02-笔记的主要内容,如果未能解决你的问题,请参考以下文章

Redis-02-笔记

Redis-02-笔记

学习笔记:python3,代码片段(2017)

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

sh bash片段 - 这些片段大多只是我自己的笔记;我找到了一些,有些我已经找到了

需要一种有效的方法来避免使用 Laravel 5 重复代码片段