Redis常用基本命令

Posted 蜗牛变涡流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis常用基本命令相关的知识,希望对你有一定的参考价值。

1.select 【数值】

在Redis中,自带16个数据库,并分别被编号为0~15,我们可以通过select+编号的方式,任意切换这其中的某个数据库。

2.dbsize

获取当前数据库的已使用空间大小

3.set 【key】 【value】

添加一个键值对

 如果是想要批量添加键值对,则可以用mset 【key1 value1 key2 value2 ...】

 

4.get 【key】

查询指定key的value值

5.setex 【key】 【到期时间】【value】

setex的全称是:set with expire

表示添加一个key-value  同时给其设置一个到期时间,或者叫“有效期”

比如添加一个10秒的key:

 

这里的ttl用于查询剩余时间  当返回-2时  说明key已失效被删除

6.setnx

setnx的全称是:set key if not exist

若设定的key已存在,则创建失败,返回0;若设定的key在数据库中不存在,则添加这对key-value。

 

7.flushdb

表示清空当前数据库

 

8.flushall

表示清空所有数据库【0~15】

9.keys *

查询当前数据库的所有key

10.getset 【key】 【value】

先get再set,当数据库中已存在该key,则返回该key的原value,并用新value替换;如果不存在,则会返回“nil”,同时添加这对key-value

 

 

Redis常用的基本命令整理

SET key value [EX seconds] [PX milliseconds] [NX|XX]

设置缓存 K-V,如果 key 已经存在,则重写

EX seconds -- 设置过期时间, 单位: seconds

PX milliseconds -- 设置过期时间,单位:milliseconds

NX -- 只有 key 不存在时才设置 K-V

XX -- 只有 key 存在时才设置 K-V   //NX和XX只能二选一

 

SETNX key value

当 key 不存在时,设置缓存 K-V,相当于 SET key value NX

 

MSET key value [key value ]

设置多个 K-V

 

GET key

获取 key 的缓存值

如果 key 不存在,返回 “nil

如果缓存值不是 string 类型,则报错(因为 GET 只处理 string)

 

MGET key [key ]

返回多个 keys 的缓存值

如果缓存值类型不是 string 或 key 不存在,则缓存 nil,因为该操作不会失败

 

INCR key

将缓存值加 1(本操作只支持 64 位带符号整型)

如果 key 不存在,执行操作之前先将缓存值设置为0,然后再将缓存值加1

如果 key 的缓存值 type 不正确,或者 string 值不能被转换为整数,操作报错

 

INCRBY key increment

将缓存值增加给定的值

 

DECR key

将缓存值减 1

 

DECRBY key increment

将缓存值减少给定的值

 

RENAME key newkey

重全名 key

如果新 key 与旧 key 一样,或者 key 不存在,会报错

如果新 key 已经存在,则重写

 

EXISTS key [key ]

返回存在的 keys 的数目,检查key是否存在,返回 0 表示一个 key 都没找到,支持多个key

 

DEL key [key ]

删除给定的 keys,如果 key 不存在,忽略。返回删除成功的 keys 数目。比如:del key1 key2,删除两个key,如果返回的数目是2,表示两个key都删除了,如果是0或1,就代表有key没有被删除成功

 

KEYS pattern

返回所有匹配给定模式的 keys 的 list

 

支持全局样式匹配

h?llo matches hello, hallo and hxllo   //?代表中间任意一个字母

h*llo matches hllo and heeeello    //*可以代表中间任意数字

h[ae]llo matches hello and hallo, but not hillo   //中间可以是a或者e

h[^e]llo matches hallo, hbllo, ... but not hello    //非e

h[a-b]llo matches hallo and hbllo    //a到b中的任意一个

 

TTL key

返回给定 key 的存活时间(seconds)

返回 -2,表示 key 不存在

返回 -1,表示 key 存在,但没有设置过期时间

 

PERSIST key

删除给定 key 设置的过期时间,让该 key 不过期

返回 1,表示成功删除 key 的过期时间

返回 0,表示 key 不存在,或者没有设置过期时间

 

EXPIRE key seconds

为给定的 key 设置过期时间

一个 key 的 timeout,只有当该 key 被 SET 或 GETSET 重写后才会被删除。这就意味着,所有的修改操作(但未替换)都不会影响 timeout(如:INCR,DECR等)

通过 PERSIST 可以删除过期时间

如果执行 RENAME,则 key 的过期时间会继承当前 key 的值。比如key1过期时间是200,key2没有过期时间,或者过期时间是其他值。当前还有100秒过期,当执行rename后,如,rename key1 key2,则key2的过期时间就会被key1的100秒来替换掉

 

FLUSHALL

清空所有缓存数据

 

FLUSHDB

清空当前DB的缓存数据,因为DB有数值,1,2,3,4等,如果进入的是第1的数值,那么执行flushDB会清空1 的值,而不会影响其他数值

 

 

原文链接:http://www.maiziedu.com/wiki/django/command/

 

以上是关于Redis常用基本命令的主要内容,如果未能解决你的问题,请参考以下文章

Redis的常用命令和8大数据类型常用操作大全

redis数据类型及常用命令

Redis基本类型与常用命令

Redis常用基本命令

Redis-数据类型,常用命令

深入了解Redis操作五大数据类型常用命令