全局命令
命令 功能
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. 【原创】Android View框架总结(三)View工作原理

    测量/布局/绘制顺序 如何引起View的测量/布局/绘制? PerformTraversales() ViewRoot View工作基本流程  MeasureSpec SpecMode Measure ...

  2. python 类和__class__理解

    __class__可理解为对象所属的父类 class A: def __init__(self,url): self.url = url def out(self): return self.url ...

  3. 2017.04.20 Adams仿真介绍

    Adams 仿真 | 验证"隐性机器人模型"概念,提高视觉伺服精度 产品:Adams行业:科研优势: 1.Adams 仿真可精确预测机器人的位置和方位 2.仿真在理论工作验证中起着 ...

  4. css样式表可以被嵌入网页里面吗?

    我们一般听说的是:javascript可以被嵌入到网页任何地方? 而我们一直忽略了css也可以嵌入到网页任何地方 不过,建议这种方式少写,为了浏览器的渲染速度,但对于行内样式来说,这种方式还是比较有效 ...

  5. 【DB2】DB2使用IMPORT命令导入含有自增长列的表报错处理

    1.启动数据库:db2start 2.创建数据库:create db TestDB using codeset gbk territory CN  collate using identity 3.连 ...

  6. Material Design Get Started

    使用Material Design设计应用: Take a look at the material design specification. Apply the material theme to ...

  7. iphone、ipod Touch、ipad触屏时的js事件

    1.Touch事件简介 pc上的web页面鼠 标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如 ipho ...

  8. ie6中利用jquery居中

    1.利用jquery居中代码 <script type="text/javascript"> $hwidth=parseInt($(window).width()); ...

  9. ASP.NET页面间传值的几种方式

    ASP.NET页面间传值的几种方式 1.使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在 ...

  10. 记一次Oracle数据故障排除过程

    前天在Oracle生产环境中,自己的存储过程运行时间超过1小时,怀疑是其他job运行时间过长推迟了自己job运行时间,遂重新跑job,发现同测试环境的确不同,运行了25分钟. 之后准备在测试环境中制造 ...