全局命令
命令 功能
set 创建键值对
keys 遍历查看所有键
exists 判断一个键是否存在,1存在,0不存在
dbsize 当前数据库中有多少个键
del 删除一个或多个键
expire 设置过期时间
ttl 查看过期时间
type 判断键的类型

Redis有5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令。

1.查看所有键

命令:keys *

#keys *会将所有的键输出
127.0.0.1:> keys *
) "hello"
) "a"
) "python"
) "mylist"
) "name" #添加一个键
127.0.0.1:> set World peace
OK
127.0.0.1:> keys *
) "hello"
) "a"
) "python"
) "mylist"
) "World" #已经添加
) "name"

2.键总数

命令:dbsize

dbsize命令会返回当前数据库中键的总数。

127.0.0.1:> dbsize
(integer) #一共存在6个键
127.0.0.1:> keys * #查看所有
) "hello"
) "a"
) "python"
) "mylist"
) "World"
) "name"

dbsize命令在计算键总数时不会遍历所有键,而是直接获取Redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1)。

keys命令会遍历所有键,所以它的时间复杂度是O(n),当Redis保存了大量键时,线上环境禁止使用。

3检查键是否存在

命令:exists key

如果键存在则返回1,不存在则返回0。

127.0.0.1:> exists name
(integer) #存在
127.0.0.1:> exists huaxia
(integer) #不存在

4.删除键

命令:del key [key ...]

del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除:

127.0.0.1:> del python
(integer) #删除成功
127.0.0.1:> exists python
(integer) #查询不存在
127.0.0.1:> del name
(integer)
127.0.0.1:> exists name
(integer)

返回结果为成功删除键的个数,假如删除一个不存在的键,就会返回0:

127.0.0.1:> del maoxian
(integer) #删除个数为0,证明不存在

同时del命令可以支持删除多个键:

127.0.0.1:> set Paul
OK
127.0.0.1:> set Harden
OK
127.0.0.1:> set Gordon
OK
127.0.0.1:> del Paul Harden Gordon
(integer)

5.键过期

语法:expire key times

Redis支持对键添加过期时间,当超过过期时间后,会自动删除键。

127.0.0.1:> set manzi zero
OK #添加一个键
127.0.0.1:> expire manzi
(integer) #设置8秒的过期时间
127.0.0.1:> ttl manzi
(integer) #还剩3秒
127.0.0.1:> ttl manzi
(integer) - #键已经被删除

ttl命令会返回键的剩余过期时间,它有3种返回值:

(1)大于等于0的整数:键剩余的过期时间。

(2)-1:键没设置过期时间

(3)-2:键不存在

127.0.0.1:> exists hello
(integer) #键存在
127.0.0.1:> ttl hello
(integer) - #没有设置过期时间

6.键的数据结构类型

命令:type key

127.0.0.1:> set a b
OK
127.0.0.1:> type a
string #字符串
127.0.0.1:> rpush list_one a b c d e
(integer)
127.0.0.1:> type list_one
list #列表

键的数据类型指的是它的值代表的数据类型,单独讨论键没有意义。

API的理解和使用——全局命令的更多相关文章

  1. 深入剖析Redis系列:Redis数据结构与全局命令概述

    前言 Redis 提供了 5 种数据结构.理解每种数据结构的特点,对于 Redis 的 开发运维 非常重要,同时掌握 Redis 的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事半功倍. ...

  2. 2.API的理解和使用

    标题 : 2.API的理解和使用 目录 : Redis 序号 : 2 ​ zset的成员是唯一的,但分数(score)却可以重复. ​ 有序集合的内部编码 1.ziplist(压缩列表):当有序集合的 ...

  3. qnx:从API开始理解QNX -- 消息传递

    从API开始理解QNX -- 消息传递    http://www.openqnx.com/chinese/viewtopic.php?f=5&t=2161 1. 频道与连接    Chann ...

  4. 【redis 学习系列】API的理解与使用(一)

    Redis提供了5种数据结构,以下介绍一些预备知识以及Redis的5种数据结构 1.预备知识 1.1 全局命令 Redis的5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令. (1)查看所 ...

  5. 如何在Vue中建立全局引用或者全局命令

    1 一般在vue中,有很多vue组件,这些组件每个都是一个文件.都可能需要引用到相同模块(或者插件).我们不想每个文件都import 一次模块. 如果是基于vue.js编写的插件我们可以用 Vue.u ...

  6. Web API 源码剖析之全局配置

    Web API 源码剖析之全局配置 Web API  均指Asp.net Web API .本节讲述的是基于Web API 系统在寄宿于IIS. 本节主要讲述Web API全局配置.它是如何优雅的实现 ...

  7. 第二章 API的理解和使用

    2.1.1全局命令 Key * 查看所有键,(慎用,会把所有键都遍历一次并列出) Dbsize 查看键总数,不会遍历所有键,只是从内置函数中读取一个数 Exists [key] 检查键是否存在 Del ...

  8. Nginx_全局命令设置

    刚安装好的Nginx, 命令需要去sbin目录执行,比较麻烦,设置下全局命令,就无需进入nginx的sbin目录执行nginx命令了 1.创建文件 vim /etc/init.d/nginx 把下面代 ...

  9. Vue基础二之全局API、实例属性和全局配置,以及组件进阶(mixins)的详细教程(案列实现,详细图解,附源码)

    本篇文章主要是写Vue.directive().Vue.use()等常用全局API的使用,vm.$props.vm.$options.vm.$slots等实例属性的使用,以及Vue全局配置.组件的mi ...

随机推荐

  1. apache mina框架

    http://blog.csdn.net/ljx8928358/article/details/7759024

  2. DataSnap——利用TParams进行多表事务更新

    DataSnap——利用TParams进行多表事务更新 服务端: function TSVRDM.multUpdatesByPar(UpdateParam: TParams; out ErrMsg: ...

  3. iOS 给三方日历加上农历

    首先创建一个农历文件 LunarCalendar.h // // LunarCalendar.h // Hnair4iPhone // // Created by yingkong1987 on 13 ...

  4. Oracle 11gR2 RAC 单网卡 转 双网卡绑定 配置步骤

    之前写过一篇双网卡绑定的文章,如下: Oracle RAC 与 网卡绑定 http://blog.csdn.net/tianlesoftware/article/details/6189639 Ora ...

  5. vim学习记录(转)

    基本功 Vim有三种模式: 导航(navigation)模式. 这时候,字母就是上下左右键. 输入模式.这时候,你按字母键,才会输入字母. 命令模式.需要先输入":" 冒号,才会进 ...

  6. GlusterFS分布式文件系统高速管理

    TaoCloud XDFS基于GlusterFS开源分布式文件系统,进行了系统优化.project化.定制化和产品化工作,五年以上的实践积累了大量实践经验,包含客户案例.最佳实践.定制开发.咨询服务和 ...

  7. Octave入门基础

    Octave入门基础 一.简单介绍 1.1 Octave是什么? Octave是一款用于数值计算和画图的开源软件.和Matlab一样,Octave 尤其精于矩阵运算:求解联立方程组.计算矩阵特征值和特 ...

  8. Win7如何解决内存不能为Read的批处理命令

    将下面文件保存为"解决内存不能为Read的批处理命令.cmd"双击运行即可   for %%1 in (%WinDir%\system32\*.dll) do regsvr32.e ...

  9. java web邮件收发

    1.网上方法要导入两个包 mail.jar&activation.jar package com.zjh.shopping.util; import java.util.Date; impor ...

  10. vue中使用key管理可复用的元素

    1.概述 Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染. key解决上述问题之外的情景:这两个元素是完全独立的,不要复用它们. 2.示例 <!DOCTYPE html&g ...