redis 基本命令

1.全局命令

redis有五种数据结构,他们是键值对中的值,对于键来说有一些通用的命令

#查看所有命键,十分危险的命令,线上禁止使用 

keys
*
#查看键的总数,dbsize 命令在计算键数时不会遍历所有的键,而是直接获取redis内置的键总数变量

dbsize
#检查键是否存在,如果键存在则返回1,不存在返回0

exists key
#删除键,通用命令,无论值是什么数据结构类型,del 命令都可以将其删除

del key [key ...]
#键过期,redis支持对键添加过期时间,当超时过期时间后,会自动删除
#通过tt1 命令观察键的剩余时间
大于等于0的证书:键剩余过期时间
-1:键没设置过期时间
-2:键不存在

expire key seconds
键的数据类型

type key

2.字符串

redis并不是简单的key-value 存储,实际上他是一个数据结构服务器,支持不同类型的值
redis strings
这是最简单的redis类型,如果你只用这种类型,redis就像一个持久化的memcache服务器(注:memcache的数据仅保存在内存中,服务器重启后,数据将丢失)
操作命令:
通常用set command 和get commend来设置和获取字符串值,下面就列举一些常用的命令
命令详解:http://doc.redisfans.com/

SET

示例:127.0.0.1:6379> set key value

返回值:
在 Redis 2.6.12 版本以前, SET 命令总是返回 OK 。
从 Redis 2.6.12 版本开始, SET 在设置操作成功完成时,才返回 OK 。
如果设置了 NX 或者 XX ,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)

GET

示例:127.0.0.1:6379> get key

返回值:
当key不存在时,返回 nil ,否则,返回key 的值。
如果key 不是字符串类型,那么返回一个错误。

MSET

示例:127.0.0.1:6379>  MSET key value [key value ...]

返回值:
总是返回 OK (因为 MSET 不可能失败)

MGET

示例:MGET key [key ...]

返回值:
一个包含所有给定 key 的值的列表。

INCR

说明:将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内

示例:
redis> SET page_view 20 OK redis> INCR page_view (integer) 21 redis> GET page_view # 数字值在 Redis 中以字符串的形式保存 "21"
返回值: 执行 INCR 命令之后 key 的

DECR

说明:将 key 中储存的数字值减一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。

示例: # 对存在的数字值 key 进行 DECR redis
> SET failure_times 10 OK redis> DECR failure_times (integer) 9 # 对不存在的 key 值进行 DECR redis> EXISTS count (integer) 0 redis> DECR count (integer) -1 # 对存在但不是数值的 key 进行 DECR redis> SET company YOUR_CODE_SUCKS.LLC OK redis> DECR company (error) ERR value is not an integer or out of range 返回值: 执行 DECR 命令之后 key 的值

INCRBY

说明:将 key 所储存的值加上增量 increment 

示例:
# key 存在且是数字值
redis> SET rank 50
OK
redis> INCRBY rank 20
(integer) 70
redis> GET rank
"70"
# key 不存在时
redis> EXISTS counter
(integer) 0
redis> INCRBY counter 30
(integer) 30
redis> GET counter
"30"
# key 不是数字值时
redis> SET book "long long ago..."
OK
redis> INCRBY book 200
(error) ERR value is not an integer or out of range

返回值: 加上 increment 之后, key 的值

DECRBY

说明:将 key 所储存的值减去减量 decrement
示例:
redis> SET count 100
OK
redis> DECRBY count 20
(integer) 80
# 对不存在的 key 进行DECRBY
redis> EXISTS pages
(integer) 0
redis> DECRBY pages 10
(integer) -10
返回值:
减去 decrement 之后, key 的值

EXISTS

说明:检查给定 key 是否存在
示例:EXISTS key
返回值:若 key 存在,返回 1 ,否则返回 0 

EXPIRE

说明:
为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除
示例:
redis> SET cache_page "www.google.com"
OK
redis> EXPIRE cache_page 30  # 设置过期时间为 30 秒
(integer) 1
redis> TTL cache_page    # 查看剩余生存时间
(integer) 23
redis> EXPIRE cache_page 30000   # 更新过期时间
(integer) 1
redis> TTL cache_page
(integer) 29996
返回值:
设置成功返回 1 。
当 key 不存在或者不能为 key 设置生存时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的生存时间),返回 0

TTL

说明:以秒为单位,返回给定 key 的剩余生存时间
示例:TTL key
返回值:
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间

 3.列表

操作命令:

RPUSH KEY VALUE : 命令可向list的右边(尾部)添加一个新元素
LPUSH KEY VALUE :命令可向list的左边(头部)添加一个新元素
LRANGE KEY START STOP :选择位置号查看start=0 stop=-1是查看list所有元素
LPOP KEY :命令可向list的左边(头部)删除一个元素
RPOP KRY :命令可向list的右边(尾部)删除一个元素

 4.哈希

hash 看起来就像一个‘hash’的样子,由键值对组成
hmset 指令设置hash中的多个域
hget 取回单个域
hmget 取回一系列的值
HMSET key [field value ...]===========【一次性插入多条数据命令是:HMSET key field value field value field value...】
列如:HMGET user:100 user David age 21 job IT

HMGET key field ======================【查询key的某一个字段所对应的值】
列如: HMGET user:100 user

HGETALL key ==========================【查看某个key的所有的值】
列如:HGETALL user:100

HMGET key field ======================【插入一条数据】
列如: HMGET user:100 user

5.集合

集合是字符串的无序排列

SADD指令把新的元素添加都set中
SADD key member [member ...]
列如:SADD t1 1 3 5 7 9       【给t1 赋予1,3,5,7,9值】

SMEMBERS KEY 列如:SMEMBERS t1 【查看t1下的集合值】
SDIFF key [key ...] 列如:SDIFF t1 t2 【以t1为基础对比t2,把t2没有的值显示出来】
SINTER key [key ...] 列如:SINTER t1 t2 【t1和t2的交集点,把相同重复的数字显示出来】
SUNION key [key ...]
列如:SUNION t1 t2 【t1和t2的不重复的数字加载一起显示出来】

 

posted @ 2020-12-14 18:06  鄧萌  阅读(142)  评论(0)    收藏  举报