前言
Redis是一个开源的内存数据结构存储系统,常用于缓存、消息队列和数据库。在使用Redis时,我们经常需要通过远程连接来访问Redis服务器。本文基于Redis 5.0.14.1版本,介绍如何通过redis-cli命令进行远程连接,并提供了一些常用的Redis基本命令。
一、远程连接命令
使用redis-cli命令可以进行远程连接,其语法格式如下:
redis-cli -h [host] -p [port] -a [password] -n [db]
其中,参数说明如下:
-h
:指定Redis服务器的IP地址-p
:指定Redis服务器的端口号-a
:指定Redis服务器的密码(如果有密码)-n
:指定Redis的库(0~15)
例如,要连接到IP地址为127.0.0.1,端口号为6379,密码为"mypass",指定库为0的Redis服务器,可以使用以下命令:
redis-cli -h 127.0.0.1 -p 6379 -a "mypass" -n 0
二、Redis基本命令
下面是一些常用的Redis基本命令:
命令 | 语法 | 说明 | 示例 | 返回类型 | 返回值 | 返回值说明 |
---|---|---|---|---|---|---|
SELECT | SELECT index | 切换到指定的数据库 | SELECT 0 | String | OK | 切换成功时返回OK |
DBSIZE | DBSIZE | 查看所指定库的key的数量 | DBSIZE | Integer | key的数量 | 指定库的key的数量 |
FLUSHDB | FLUSHDB | 删除指定库的所有Key | FLUSHDB | String | OK | 删除成功时返回OK |
FLUSHALL | FLUSHALL | 删除所有库(db0 ~ db15)的所有Key | FLUSHALL | String | OK | 删除成功时返回OK |
SET | SET key value | 设置指定key的值为value | SET mykey "Hello" | String | OK | 设置成功时返回OK |
EXISTS | EXISTS key | 检查指定的key是否存在 | EXISTS mykey | Integer | 1或0 | 存在返回1,不存在返回0 |
GET | GET key | 获取指定key的值 | GET mykey | String | value | 返回指定key的值 |
DEL | DEL key | 删除指定的key | DEL mykey | Integer | 删除的key的数量 | 返回被删除的key的数量 |
TYPE | TYPE key | 返回指定key所储存的值的类型 | TYPE mykey | String | string、list、set、zset、hash或none | 返回指定key的值的类型 |
INCR | INCR key | 将指定key的值增加1 | INCR mykey | Integer | 增加后的值 | 返回增加后的值 |
DECR | DECR key | 将指定key的值减少1 | DECR mykey | Integer | 减少后的值 | 返回减少后的值 |
DUMP | DUMP key | 序列化给定的key,并返回被序列化的值 | DUMP mykey | String | 序列化后的值 | 返回被序列化的值 |
EXPIRE | EXPIRE key seconds | 为指定的key设置过期时间(以秒为单位) | EXPIRE mykey 60 | Boolean | true或false | 设置成功返回true,key不存在或设置失败返回false |
EXPIREAT | EXPIREAT key timestamp | 为指定的key设置过期时间(以UNIX时间戳为单位) | EXPIREAT mykey 2525443200 | Boolean | true或false | 设置成功返回true,key不存在或设置失败返回false,如果当时间超过了设置的过期时间,那么Redis会立即将该key删除 |
PEXPIRE | PEXPIRE key milliseconds | 为指定的key设置过期时间(以毫秒为单位) | PEXPIRE mykey 60000 | Boolean | true或false | 设置成功返回true,key不存在或设置失败返回false |
PEXPIREAT | PEXPIREAT key milliseconds-timestamp | 为指定的key设置过期时间(以毫秒的UNIX时间戳为单位) | PEXPIREAT mykey 2525443200000 | Boolean | true或false | 设置成功返回true,key不存在或设置失败返回false,如果当时间超过了设置的过期时间,那么Redis会立即将该key删除 |
PTTL | PTTL key | 以毫秒为单位返回指定key的剩余过期时间 | PTTL mykey | Integer | 剩余过期时间(毫秒) | 返回指定key的剩余过期时间(毫秒),key不存在返回-2,key不会过期返回-1 |
TTL | TTL key | 以秒为单位返回指定key的剩余过期时间 | TTL mykey | Integer | 剩余过期时间(秒) | 返回指定key的剩余过期时间(秒),key不存在返回-2,key不会过期返回-1 |
PERSIST | PERSIST key | 移除指定key的过期时间,使其持久保持 | PERSIST mykey | Boolean | true或false | 移除成功返回true,key不存在或移除失败返回false |
HSET | HSET key field value | 设置指定key的哈希表中指定field的值为value | HSET myhash field1 "Hello" | Integer | 1或0 | 设置成功返回1,field已存在返回0 |
HGET | HGET key field | 获取指定key的哈希表中指定field的值 | HGET myhash field1 | String | field的值 | 返回指定field的值 |
LPUSH | LPUSH key value1 value2 … | 将一个或多个值插入到列表的头部 | LPUSH mylist "World" | Integer | 列表的长度 | 返回插入后列表的长度 |
RPUSH | RPUSH key value1 value2 … | 将一个或多个值插入到列表的尾部 | RPUSH mylist "Hello" | Integer | 列表的长度 | 返回插入后列表的长度 |
LPOP | LPOP key | 移除并返回列表的头部元素 | LPOP mylist | String | 列表的头部元素 | 返回列表的头部元素 |
RPOP | RPOP key | 移除并返回列表的尾部元素 | RPOP mylist | String | 列表的尾部元素 | 返回列表的尾部元素 |
SADD | SADD key member1 member2 … | 将一个或多个成员添加到集合中 | SADD myset "member1" | Integer | 添加的成员数量 | 返回添加的成员数量 |
SMEMBERS | SMEMBERS key | 返回集合中的所有成员 | SMEMBERS myset | Array | 成员列表 | 返回集合中的所有成员 |
ZADD | ZADD key score1 member1 score2 member2 … | 将一个或多个成员添加到有序集合中 | ZADD myzset 1 "member1" | Integer | 添加的成员数量 | 返回添加的成员数量 |
ZRANGE | ZRANGE key start stop | 返回有序集合中指定范围内的成员 | ZRANGE myzset 0 -1 | Array | 成员列表 | 返回指定范围内的成员列表 |
KEYS | KEYS pattern | 查找所有符合给定模式的key | KEYS * 或 KEYS my* | Array | key列表 | 返回符合给定模式的key列表 |
MOVE | MOVE key db | 将指定的key移动到指定的数据库 | MOVE mykey 1 | Boolean | true或false | 移动成功返回true,key不存在或移动失败返回false |
RANDOMKEY | RANDOMKEY | 从当前数据库中随机返回一个key | RANDOMKEY | String | 随机的key | 返回随机的key |
RENAME | RENAME key newkey | 修改指定key的名称 | RENAME mykey newkey | String | OK | 修改成功时返回OK |
RENAMENX | RENAMENX key newkey | 仅当newkey不存在时,将指定key改名为newkey | RENAMENX mykey newkey | Boolean | true或false | 修改成功返回true,newkey已存在返回false,mykey不存在报错’ERR no such key’ |