zoukankan      html  css  js  c++  java
  • Redis通用命令

    time

    一个包含两个字符串的列表: 第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。

    127.0.0.1:6379> time
    1) "1561539827"
    2) "938527"

    dbsize

    返回当前数据库的 key 的数量。

    127.0.0.1:6379> dbsize
    (integer) 3
    127.0.0.1:6379> set age 26
    OK
    127.0.0.1:6379> dbsize
    (integer) 4

    exists : 检查给定key是否存在,若存在返回1,否则返回0

    127.0.0.1:6379> exists yhq
    (integer) 0
    127.0.0.1:6379> set yhq 1
    OK
    127.0.0.1:6379> exists yhq
    (integer) 1

    type key

    返回键存储值的类型 : none(键不存在) string(字符串或者HyperLogLog) hash(散列)list(列表)set(无序集合)zset(有序集合)

    select

    切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。默认使用 0 号数据库。默认16个数据库,数据库之间互不相通。

    127.0.0.1:6379> dbsize
    (integer) 4
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> dbsize
    (integer) 0
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> dbsize
    (integer) 4

    MOVE key db

    将当前数据库的 key 移动到给定的数据库 db 当中。如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。移动成功返回 1 ,失败则返回 0 。

    127.0.0.1:6379> select 0
    OK
    127.0.0.1:6379> set yhq qhh
    OK
    127.0.0.1:6379> move yhq 1
    (integer) 1
    127.0.0.1:6379> exists yhq
    (integer) 0
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> exists yhq
    (integer) 1
    127.0.0.1:6379[1]> exists qhh
    (integer) 0
    127.0.0.1:6379[1]> move qhh 0
    (integer) 0
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> exists qhh
    (integer) 0
    127.0.0.1:6379> select 0
    OK
    127.0.0.1:6379> set yhq 1
    OK
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> set yhq 2
    OK
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> move yhq 1
    (integer) 0
    127.0.0.1:6379> get yhq
    "1"
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> get yhq
    "2"

    flushdb

    清空当前数据库

    127.0.0.1:6379> dbsize
    (integer) 1
    127.0.0.1:6379> flushdb
    OK
    127.0.0.1:6379> dbsize
    (integer) 0

    flushall

    清空所有库

    127.0.0.1:6379> set yhq 1
    OK
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> set yhq 2
    OK
    127.0.0.1:6379[1]> flushall
    OK
    127.0.0.1:6379[1]> keys *
    (empty list or set)
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> keys *
    (empty list or set)

    注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器

    然后 手工编辑aof文件, 去掉文件中的 “flushall ”相关行, 然后开启服务器,就可以导入回原来数据.

    如果,flushall之后,系统恰好bgrewriteaof了,那么aof就清空了,数据丢失.

    SHUTDOWN [NOSAVE] [SAVE]

    这个命令执行如下操作:

    • 停止所有客户端.

    • 如果配置了save 策略 则执行一个阻塞的save命令.

    • 如果开启了AOF,则刷新aof文件

    • 关闭redis服务进程(redis-server).

    如果配置了持久化策略,那么这个命令将能够保证在关闭redis服务进程的时候数据不会丢失. 如果仅仅在客户端执行SAVE 命令,然后 执行QUIT 命令,那么数据的完整性将不会被保证,因为其他客户端可能在执行这两个命令的期间修改数据库的数据.

    注意: 一个没有配置持久化策略的redis实例 (没有aof配置, 没有 “save” 命令) 将不会 在执行SHUTDOWN命令的时候转存一个rdb文件, 通常情况下你不想让一个仅用于缓存的rendis实例宕掉

    SAVE 和 NOSAVE 修饰符

    通过指定一个可选的修饰符可以改变这个命令的表现形式 比如:

    • SHUTDOWN SAVE能够在即使没有配置持久化的情况下强制数据库存储.

    • SHUTDOWN NOSAVE 能够在配置一个或者多个持久化策略的情况下阻止数据库存储. (你可以假想它为一个中断服务的 ABORT 命令).

    返回值 : 当发生错误的时候返回状态码 . 当成功的时候不返回任何值,服务退出,链接关闭.

    keys pattern : 获得符合规则的键名列表

    ? 匹配一个字符

     * 匹配任意个(包括0个)字符

    []匹配括号间的任一字符,可以使用"-"符号表示一个范围,如a[b-d]可以匹配"ab","ac","ad"

    x匹配字符x,用于转义符号,例如?

    > keys yh?
    1) "yhq"

    * 匹配任意个(包括0个)字符

    > keys yh*
    1) "yhqqhh"
    2) "yhq"

    [] 匹配括号间的任一字符,可以用 - 表示一个范围

    > keys y[h-z]q
    1) "yhq"

    x 匹配字符x,用于转义符号,如匹配?就需要?

    > keys qh?
    1) "qhh"
    2) "qh?"
    > keys qh?
    1) "qh?"

     rename : 成功返回ok,失败返回错误(当旧名称和新名称相同,或者旧名称不存在时,返回一个错误。当新名称已存在时,将覆盖旧值)

     

    > get qhh
    "132"
    > rename qhh yhq
    OK
    > get yhq
    "132"
    > rename yh yhq
    (error) ERR no such key

     

    renamenx : 修改名称,和renamenx不同的是,修改成功返回1,如果新名称存在返回0

     

    > renamenx yhq qhh
    (integer) 0
    > renamenx yhq qhhyhq
    (integer) 1

     

    randomkey : 当数据库不为空时,随机返回key,当数据库为空时,返回nil

     

    > randomkey
    "qhhyhq"
    > randomkey
    "qhh"

     

     del : 删除键,可以删除多个键,返回值是删除键的个数

    > del yhq
    1
    > del yhq
    0

     

     

     

     

     

    scan(不会阻塞服务器,可能重复) sscan hscan zscan

     

  • 相关阅读:
    Report Service中报 RSClientController 未定义
    jquery ligerUI
    ThreadPool基础之RegisterWaitForSingleObject
    配置ActiveX控件在网页中下载安装
    Unable to update the EntitySet 'XXX' because it has a DefiningQuery and no element exists in the element to support the current operation.
    Silverlight中如何实现上下标的显示
    SQL server 基本函数(一)
    IIS中设置默认文档
    WPF如何不显示最大化,最小化的按钮
    ASP.NET中JSON如何对时间进行序列化和反序列化
  • 原文地址:https://www.cnblogs.com/yhq-qhh/p/10328892.html
Copyright © 2011-2022 走看看