Redis概述

本文介绍了Redis,一种高效的非关系型数据库,主要讲解了其内存存储、五种核心数据结构(STRING, LIST, SET, HASH, ZSET)以及常见的命令如DEL、EXISTS、EXPIRE等。通过实例演示了如何操作、管理键值对并了解其过期策略。
摘要由CSDN通过智能技术生成
概述

Redis是一个使用C语言编写的非关系型数据库(NoSQL), 它是一个key-value的存储系统,由于数据都缓存在内存中,因此效率十分高效,并且可以将存储在内存中的键值对数据持久化到磁盘中。

Redis数据结构

Redis可以存储键(key)与五种不同数据结构类型之间的映射关系。这五种数据结构类型分别为STRINGLISTSETHASHZSET

结构类型结构存储的值
STRING字符串、整数或者浮点数
LIST一个链表,链表上的每个节点都包含了一个字符串
SET不重复的字符串
HASH键值对的映射关系
ZSET字符串成员(member)与浮点数分值(score)之间的有序映射,元素之间的排列顺序由分值的大小决定
Redis命令

DEL: 删除一个或多个key,不存在的key会被忽略。

语法:DEL key

DEL key1 key2…(删除多个key)

返回值:被删除key的数量

127.0.0.1:6379> SET name redis
OK
127.0.0.1:6379> DEL name
(integer) 1

EXISTS: 检查给定的key是否存在 返回值:若key存在,返回1,否则返回0

127.0.0.1:6379> SET str redis
OK
127.0.0.1:6379> EXISTS str
(integer) 1
127.0.0.1:6379> DEL str
(integer) 1
127.0.0.1:6379> EXISTS str
(integer) 0

EXPIRE key seconds: 设置key的过期时间(单位是秒),超过时间后,将会自动删除该key。

对已经有过期时间的key执行EXPIRE操作,将会更新它的过期时间

返回值: 如果成功设置过期时间,返回1;如果key不存在或无法设置过期时间,返回0。

127.0.0.1:6379> SET key1 'redis'
OK
127.0.0.1:6379> EXPIRE key1 10
(integer) 1
127.0.0.1:6379> TTL key1
(integer) 5
127.0.0.1:6379> SET key1 'hello'
OK
127.0.0.1:6379> TTL key1
(integer) -1

PERSIST key: 移除给定key的过期时间

返回值:当过期时间移除成功时返回1;如果key不存在或者key没有设置过期时间则返回0

127.0.0.1:6379> SET mykey "Redis"
OK
127.0.0.1:6379> EXPIRE mykey 20
(integer) 1
127.0.0.1:6379> PERSIST mykey
(integer) 1
127.0.0.1:6379> TTL mykey
(integer) -1
127.0.0.1:6379>

RENAME key newkey:将key重命名为newkey,如果key与newkey相同,则返回一个错误。如果newkey已经存在则值将被覆盖

127.0.0.1:6379> SET key "redis"
OK
127.0.0.1:6379> RENAME key newkey
OK
127.0.0.1:6379> GET newkey
"redis"

TTL key: 返回key的剩余时间。如果key不存在或者已过期,返回-2;如果key存在并且没有设置过期时间(永久有效),返回-1

127.0.0.1:6379> SET mykey "Redis"
OK
127.0.0.1:6379> EXPIRE mykey 20
(integer) 1
127.0.0.1:6379> TTL mykey
(integer) 20

TYPE key: 返回key所存储的value的数据结构类型,它可以返回string, list, set, zsethash等不同的类型。

127.0.0.1:6379> SET key1 "value"
OK
127.0.0.1:6379> LPUSH key2 "value"
(integer) 1
127.0.0.1:6379> SADD key3 "value"
(integer) 1
127.0.0.1:6379> TYPE key1
string
127.0.0.1:6379> TYPE key2
list
127.0.0.1:6379> TYPE key3
set

返回值:返回当前key的数据类型,如果key不存在时返回none

APPEND key value:如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作。

返回值:返回append后字符串值(value)的长度

127.0.0.1:6379> SET key1 "redis"
OK
127.0.0.1:6379> APPEND key1 "hello"
(integer) 10
127.0.0.1:6379> GET key1
"redishello"

DECR key:对key对应的数字做减1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。

返回值:数字:减小之后的value

127.0.0.1:6379> SET num 10
OK
127.0.0.1:6379> DECR num
(integer) 9

DECRBY key decrement:将key对应的数字减decrement。如果key不存在,操作之前,key就会被置为0。如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。

127.0.0.1:6379> SET num 10
OK
127.0.0.1:6379> DECRBY num 5
(integer) 5

SETEX key seconds value:设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期。这个命令等效于执行下面的命令:

SET mykey value
EXPIRE mykey seconds

STRLEN key:返回key的string类型value的长度。如果key对应的非string类型,就返回错误。

返回值:key对应的字符串value的长度,或者0(key不存在)

127.0.0.1:6379> SET mykey "redis"
OK
127.0.0.1:6379> STRLEN mykey
(integer) 5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值