API的理解和使用——全局命令
| 命令 | 功能 |
| 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的理解和使用——全局命令的更多相关文章
- 深入剖析Redis系列:Redis数据结构与全局命令概述
前言 Redis 提供了 5 种数据结构.理解每种数据结构的特点,对于 Redis 的 开发运维 非常重要,同时掌握 Redis 的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事半功倍. ...
- 2.API的理解和使用
标题 : 2.API的理解和使用 目录 : Redis 序号 : 2 zset的成员是唯一的,但分数(score)却可以重复. 有序集合的内部编码 1.ziplist(压缩列表):当有序集合的 ...
- qnx:从API开始理解QNX -- 消息传递
从API开始理解QNX -- 消息传递 http://www.openqnx.com/chinese/viewtopic.php?f=5&t=2161 1. 频道与连接 Chann ...
- 【redis 学习系列】API的理解与使用(一)
Redis提供了5种数据结构,以下介绍一些预备知识以及Redis的5种数据结构 1.预备知识 1.1 全局命令 Redis的5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令. (1)查看所 ...
- 如何在Vue中建立全局引用或者全局命令
1 一般在vue中,有很多vue组件,这些组件每个都是一个文件.都可能需要引用到相同模块(或者插件).我们不想每个文件都import 一次模块. 如果是基于vue.js编写的插件我们可以用 Vue.u ...
- Web API 源码剖析之全局配置
Web API 源码剖析之全局配置 Web API 均指Asp.net Web API .本节讲述的是基于Web API 系统在寄宿于IIS. 本节主要讲述Web API全局配置.它是如何优雅的实现 ...
- 第二章 API的理解和使用
2.1.1全局命令 Key * 查看所有键,(慎用,会把所有键都遍历一次并列出) Dbsize 查看键总数,不会遍历所有键,只是从内置函数中读取一个数 Exists [key] 检查键是否存在 Del ...
- Nginx_全局命令设置
刚安装好的Nginx, 命令需要去sbin目录执行,比较麻烦,设置下全局命令,就无需进入nginx的sbin目录执行nginx命令了 1.创建文件 vim /etc/init.d/nginx 把下面代 ...
- Vue基础二之全局API、实例属性和全局配置,以及组件进阶(mixins)的详细教程(案列实现,详细图解,附源码)
本篇文章主要是写Vue.directive().Vue.use()等常用全局API的使用,vm.$props.vm.$options.vm.$slots等实例属性的使用,以及Vue全局配置.组件的mi ...
随机推荐
- Define Custom Data Filter Using Pre-Query Trigger In Oracle Forms
Oracle Forms is having its default records filter, which we can use through Enter Query mode to spec ...
- 缠中说禅股票交易系统图解 z
缠中说禅股票交易系统图解 2010-03-23 10:51 (王纯阳)缠论祖师的经典语录 1. 就在买点买,卖点卖:当然,买点并不一定是一个点,一个价位,级别越大的,可以容忍的区间越大. 2. 你要经 ...
- {dede:sql}标签的用法
sql标签可以称得上是个万能标签了,查询数据库将其输出,这里介绍一些关于这个标签的用法: 1.用来输出统计内容,这个是不错的,举个例子,我们来统计下总共发了多少的文章,思路就是输出dede_addon ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序【转】
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html 1. Web API简单说明 近来很多大型的平台都公开了Web API. ...
- 线段树专题—ZOJ1610 Count the Colors
题意:给一个n,代表n次操作,接下来每次操作表示把[l.r]区间的线段涂成k的颜色当中,l,r,k的范围都是0到8000 分析:事实上就是拿线段树维护一段区间的颜色,整体用到的是线段树的区间更新把,可 ...
- Yii2 数据操作Query Builder
转载地址: http://blog.csdn.net/hzqghost/article/details/44117081 Yii2 数据操作Query Builder 分类: Yii22015-03- ...
- RPM命令使用
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写 •rpm的常用参数 i:安装应用程序(install) e:卸载应用程序(erase) vh:显示安装进度:( ...
- linux中nl用法
linux 中nl 命令使用 nl :添加行号打印 -b: 指定行号指定的方式,主要有两种: -b a : 表示不论是否为空行,都同样列出行号 -b t : 如果有空行,则不列出那一行 ...
- 服务器性能之CPU
有时我们会发现开发的应用在CPU核数一样的虚拟服务器上性能表现出较大的差异,这是为什么呢?上次有童鞋问到我这样一个问题,所以我根据自己的理解给大家简说下! CPU生产商为了提高CPU的性能,通常做法是 ...
- 我用select做多路复用踩到的坑
既然说是用select踩到的坑,那么就先直接贴一段使用select的代码上来瞅一下: bool SocketAction(int fd, const char* buf, size_t len, ui ...