一、系统级命令(不归属任何一个数据结构)

从keys命令说起

1、  可以模式匹配  也就是可以用正则表达式的方式来匹配

格式为KEYS pattern

glob风格通配符规则

?   匹配一个字符

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

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

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

set  设置

get获取

如下使用场景:

产品的缓存  product+”.”+....;

订单的缓存: order+”.”+...;

KEYS *  找到所有的key
利用*
127.0.0.1:6379> flushdb 清空数据库
OK
127.0.0.1:6379> set name pyrene
OK
127.0.0.1:6379> set nbme pyrene
OK
127.0.0.1:6379> keys *
1) "nbme"
2) "name"
127.0.0.1:6379> keys n?me
1) "nbme"
2) "name"

2、  判断一个建是否存在

EXISTS key

如果键存在则返回整数类型1,否则返回0

3、  删除键

DEL key [key...]

可以删除一个或者多个键,返回值为删除键的个数

127.0.0.1:6379> del name nbme
(integer) 2
127.0.0.1:6379> keys *
(empty list or set)

获取键值的数据类型

TYPE key

判断当前的键是什么类型,返回值可能是string、hash(散列类型)、list、set、zset

127.0.0.1:> hset collections key value
(integer)
127.0.0.1:> type collections
hash

从当前数据库中随机(不删除)返回一个key

RANDMKEY

返回值

当数据库不为空的时候返回1

当数据库为空的时候返回nil

127.0.0.1:> randomkey
"name"
127.0.0.1:> randomkey
"nbme"
127.0.0.1:> randomkey
"name"
127.0.0.1:> randomkey
"fruits"
127.0.0.1:> randomkey
"collections"
127.0.0.1:> randomkey
"nbme"
127.0.0.1:> randomkey
"collections"
127.0.0.1:> randomkey
"fruits"

设置过期时间

EXPIRE  key seconds    【以秒为单位】

如果要做缓存就要做过期时间

返回值:

设置成功返回值为1

当 key 不存在或者不能为 key 设置生存时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的生存时间),返回 0

127.0.0.1:> expire name     给name这个键设置5秒
(integer)
127.0.0.1:> get name
"pyrene"
127.0.0.1:> get name
"pyrene"
127.0.0.1:> get name
(nil)

PEXPIRE key milliseconds         【毫秒为单位】

这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE 命令那样,以秒为单位。

127.0.0.1:> set name pyrene
OK
127.0.0.1:> get name
"pyrene"
127.0.0.1:> pexpire name
(integer)
127.0.0.1:> get name
"pyrene"
127.0.0.1:> get name
(nil)

以某个时间点为设置过期时间

EXPIREAT  key timestap

返回值:

如果设置成功 返回1

如果key不存在或者没办法设置生存时间返回0

应用场景

如每晚10点清空集群缓存

pexpireat  【微妙】

以微妙时间点为过期时间

TTL 查看key还有多长的存活时间(time to live)  [秒为单位]

返回值

当key不存在的时候,返回-2

当key存在但是没有设置生存时间的时候返回-1

否则以秒为单位,返回key的剩余生存时间

127.0.0.1:6379> set name pyrene
OK
127.0.0.1:6379> expire name 20
(integer) 1
127.0.0.1:6379> ttl name
(integer) 16
127.0.0.1:6379> ttl name
(integer) 13
127.0.0.1:6379> ttl name
(integer) 11
127.0.0.1:6379> ttl name
(integer) 8
127.0.0.1:6379> ttl name
(integer) 3
127.0.0.1:6379> ttl name
(integer) -2

与ttl对应的就是pttl,唯一不一样的是以【毫秒为单位】

127.0.0.1:6379> set name pyrene
OK
127.0.0.1:6379> get name
"pyrene"
127.0.0.1:6379> expire name 20
(integer) 1
127.0.0.1:6379> pttl name
(integer) 16577
127.0.0.1:6379> pttl name
(integer) 10588
127.0.0.1:6379> pttl name
(integer) 474
127.0.0.1:6379> pttl name
(integer) -2

redis 第二篇 系统命令简介 上的更多相关文章

  1. LWJGL3的内存管理,第二篇,栈上分配

    LWJGL3的内存管理,第二篇,栈上分配 简介 为了讨论LWJGL在内存分配方面的设计,本文将作为该系列随笔中的第二篇,用来讨论在栈上进行内存分配的策略,该策略在 LWJGL3 中体现为以 Memor ...

  2. 15天玩转redis —— 第二篇 基础的字符串类型

    我们都知道redis是采用C语言开发,那么在C语言中表示string都是采用char[]数组的,然后你可能会想,那还不简单,当我执行如下命令,肯定是直 接塞给char[]数组的. 如果你真的这么想的话 ...

  3. Redis第二篇(Redis基本命令)

    -x     从标准输入读取一个参数 such as: echo –en “shaw” |./redis-cli –x setname == set name shaw -r     重复执行一个命令 ...

  4. 【原】Spring整合Redis(第二篇)—SDR环境搭建具体步骤

    [环境参数] Spring版本:4.2.6.RELEASESpring-Data-Redis版本:1.7.2.RELEASE Redis版本:redis-2.4.5-win32-win64 [简要说明 ...

  5. javascript立即调用的函数表达式N种写法(第二篇)

    原文:javascript立即调用的函数表达式N种写法(第二篇) 上一篇博客我谈到将函数声明转换为函数表达式最常见的一种写法是:通过括号()将匿名函数声明转换为函数表达式即(function(){}) ...

  6. JDFS:一款分布式文件管理实用程序第二篇(更新升级、解决一些bug)

    一 前言 本文是<JDFS:一款分布式文件管理实用程序>系列博客的第二篇,在上一篇博客中,笔者向读者展示了JDFS的核心功能部分,包括:服务端与客户端部分的上传.下载功能的实现,epoll ...

  7. 【ABAP系列】SAP ABAP7.40新语法简介第二篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...

  8. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼       Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...

  9. iOS开发UI篇—CALayer简介

    iOS开发UI篇—CALayer简介   一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实 ...

随机推荐

  1. php 正则匹配省市区

    匹配指定前后内容中的值 如匹配/xxx-abc中的abc preg_match('/\/xxx-([^<]*)/i', $route, $matches); echo $matches[1]; ...

  2. LeetCode: Validate Binary Search Tree [098]

    [题目] Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defin ...

  3. 【BZOJ2140】稳定婚姻 Tarjan

    [BZOJ2140]稳定婚姻 Description 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. ...

  4. 第三章 T-SQL 编程

    3.1 使用变量 变量是可以存储数据值的对象.可以使用局部变量向SQL语句传递数据.在T-SQL中执行一批SQL语句时,可以声明许多变量以便临时使用.声明变量以后,可以在批处理中用一条T-SQL语句设 ...

  5. docker-compose安装confluence

    1.首先安装docker-compose   pip install docker-compose       安装完成提示:         2.编写mysql-confluence-compose ...

  6. 关于angularjs的select下拉列表存在空白的解决办法

    angularjs 的select的option是通过循环造成的,循环的方式可能有ng-option或者</option  ng-repeat></option>option中 ...

  7. TestClass必须是public的

    运行一个测试类遇到一下问题: namespace TestSample.Sample {     [TestClass]     class CynthiaTest     {         [Te ...

  8. java限流(一): Semaphore

    Before obtaining an item each thread must acquire a permit from the semaphore, guaranteeing that an ...

  9. Thrift官方安装手册(译)

    本篇是Thrift官网安装文档的翻译,原地址点击这里.Thrift之前是不支持Windows的.但是似乎0.9版本以后已经支持Window了.介绍了Thrift安装的环境要求以及在centos,Deb ...

  10. C++实现计算器功能(包括计算含未知量的式子),输出后缀表达式

    大概描述        用c++语言在vc中实现部分数学计算功能.其中实现的数学计算功能包括加减乘除运算.开方计算.自然对数运算.以10为底的对数运算.幂计算.正弦余弦计算. 由用户输入要计算的表达式 ...