Redis的基础操作
Redis的基础操作
(1)掌握Redis基本的管理命令;
(2)实现Redis键(key)的管理。
Redis是一种基于内存的数据库,并且提供一定的持久化功能,它是一种键值(key-value)数据库,使用key作为索引找到当前缓存的数据,并且返回给程序调用者。
(1)Redis管理命令
info命令
在Redis控制台下使用info命令查看Redis服务端详细信息
[root@localhost bin]# redis-cli -p 6379 -a redis123 Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 127.0.0.1:6379> INFO # Server redis_version:5.0.7 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:c66d2d6e49b8efae ---以下省略--- |
Client List命令
Redis Client List命令用于返回所有连接到服务器的客户端信息和统计数据
127.0.0.1:6379> CLIENT LIST id=3 addr=127.0.0.1:53396 fd=8 name= age=358 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=32742 obl=0 oll=0 omem=0 events=r cmd=client |
config命令
使用config命令可以查看Redis的所有配置
127.0.0.1:6379> CONFIG GET * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" ---以下省略--- |
dbsize命令
使用redis dbsize命令查看当前Redis有多少数据
127.0.0.1:6379> DBSIZE (integer) 0
添加一个数据后再查看: 127.0.0.1:6379> set name myredis OK 127.0.0.1:6379> DBSIZE (integer) 1 |
select命令
在Redis中也是有库这个概念的,不过不同于MySQL,Redis的库是默认的,并不是我们手动去创建的。在Redis中一共有16(0-15)个库。在MySQL中进入某一个库,我们需要使用use dbname命令。在Redis中,只需要使用select即可。默认情况下,我们是在0库中进行操作。
127.0.0.1:6379> SELECT 3 #切换到第三个数据库 OK 127.0.0.1:6379[3]> #此处可以看到已经切换到第三个数据库 127.0.0.1:6379[3]> DBSIZE #查看数据库大小 (integer) 0 127.0.0.1:6379[3]> SELECT 0 #返回原数据库 OK 127.0.0.1:6379> DBSIZE #重新查看之前操作的数据库的大小 (integer) 1 |
flush命令(flushdb、flushall)
flush命令用于清空数据库,flushdb清除当前库数据,flushall清除所有库数据
127.0.0.1:6379> DBSIZE #查看当前数据库数据 (integer) 3 127.0.0.1:6379> FLUSHDB #清除当前数据库数据 OK 127.0.0.1:6379> DBSIZE #可以看到该数据库数据已被删除 (integer) 0 127.0.0.1:6379> FLUSHALL #删除Redis所有数据库数据 OK |
Redis键(key)管理
Redis键命令用于管理 Redis的键。Redis键命令的基本语法如下
COMMAND KEY_NAME
命令 |
命令描述和作用 |
DEL key |
该命令用于在key存在时删除key。 |
DUMP key |
序列化给定key ,并返回被序列化的值 |
EXISTS key |
检查给定key是否存在 |
EXPIRE key seconds |
为给定key设置过期时间,以秒计 |
EXPIREAT key timestamp |
EXPIREAT的作用和EXPIRE类似,都用于为key设置过期时间。不同在于EXPIREAT命令接受的时间参数是UNIX时间戳(unix timestamp) |
PEXPIRE key milliseconds |
设置key的过期时间以毫秒计 |
PEXPIREAT key milliseconds-timestamp |
设置key过期时间的时间戳(unix timestamp)以毫秒计 |
KEYS pattern |
查找所有符合给定模式(pattern)的 key |
MOVE key db |
将当前数据库的key移动到给定的数据库db当中 |
PERSIST key |
移除key的过期时间,key将持久保持 |
PTTL key |
以毫秒为单位返回key的剩余的过期时间 |
TTL key |
以秒为单位,返回给定key的剩余生存时间(TTL,time to live) |
RANDOMKEY |
从当前数据库中随机返回一个key 。 |
RENAME key newkey |
修改key的名称 |
RENAMENX key newkey |
仅当newkey不存在时,将key改名为newkey |
SCAN cursor [MATCH pattern] [COUNT count] |
迭代数据库中的数据库键 |
TYPE key |
返回key所储存的值的类型 |
SET命令
Redis SET命令用于创建一个键,若键不存在则创建,若键存在则覆盖当前键。Redis SET命令基本语法如下:
SET KEY NAME[KEY_NAME1]
127.0.0.1:6379> set name myredis OK |
DEL命令
Redis DEL命令用于删除已存在的键。不存在的key会被忽略。Redis DEL命令基本语法如下:
DEL KEY_NAME[ KEY_NAME1]
127.0.0.1:6379> del name (integer) 1 127.0.0.1:6379> del name haha (integer) 2 |
EXISTS命令
Redis EXISTS命令用于检查给定key是否存在。Redis EXISTS命令基本语法如下
EXISTS KEY_NAME #若key存在返回1 ,否则返回0
127.0.0.1:6379> EXISTS name (integer) 1 |
TYPE命令
Redis Type命令用于返回key所储存的值的类型。基本语法如下:
TYPE KEY_NAME
返回key的数据类型,数据类型有none(key不存在)、string(字符串)、list(列表)、set(集合)、zset(有序集)、hash(哈希表)。
例如:
127.0.0.1:6379> set name myredis OK 127.0.0.1:6379> lpush mylist 1 3 5 7 9 (integer) 5 127.0.0.1:6379> TPYE mylist list 127.0.0.1:6379> TPYE name string |
RENAME命令
Redis Rename命令用于修改key的名称,基本语法如下:
RENAME OLD_KEY_NAME NEW_KEY_NAME
改名成功时提示OK ,失败时候返回一个错误。
当OLD_KEY_NAME和NEW_KEY_NAME相同,或者OLD_KEY_NAME 不存在时,返回一个错误。当NEW_KEY_NAME已经存在时,RENAME命令将覆盖旧值。
例如:
127.0.0.1:6379> RENAME aha newK (error) ERR no such key 127.0.0.1:6379> RENAME haha newK OK |
TTL命令
Redis TTL命令以秒为单位返回key的剩余过期时间,其命令基本语法如下:
TTL KEY_NAME
当key不存在时,返回-2。当key存在但没有设置剩余生存时间时,返回-1。 否则,以毫秒为单位,返回key的剩余生存时间。
例如:
127.0.0.1:6379> TTK newK (integer) -1 127.0.0.1:6379> TTK haha (integer) -2 |
注意:在Redis 2.8版本以前,当key不存在,或者key没有设置剩余生存时间时,命令都返回-1。
Expire命令
Expire命令用于设置key的过期时间。key过期后将不再可用。其命令基本语法如下:
Expire KEY_NAME TIME_IN_SECONDS
设置成功返回1。 当key不存在或者不能为key设置过期时间时(比如在低于2.1.3版本的Redis中尝试更新key的过期时间)返回0 。
例如,设置变量newK时间为5s,5s后查看该变量已经不存在
![]() |