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后查看该变量已经不存在

 

posted @ 2021-06-17 22:43  isicman  阅读(127)  评论(0)    收藏  举报