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常用基本命令的主要内容,如果未能解决你的问题,请参考以下文章