【Redis】Redis常用命令合集

连接本地Redis服务器

使用redis-cli命令连接本地默认端口(6379)的Redis服务器:

bash 复制代码
redis-cli

指定端口连接:

bash 复制代码
redis-cli -p 6380

连接远程Redis服务器

基础连接命令格式:

bash 复制代码
redis-cli -h <host> -p <port>

示例连接远程服务器:

bash 复制代码
redis-cli -h 192.168.1.100 -p 6379

带密码认证连接

使用-a参数指定密码:

bash 复制代码
redis-cli -h <host> -p <port> -a <password>

安全提示:建议在连接后立即用AUTH命令认证,避免密码出现在命令历史中:

bash 复制代码
redis-cli -h 192.168.1.100 -p 6379
AUTH yourpassword

使用SSL/TLS加密连接

启用SSL连接:

bash 复制代码
redis-cli --tls -h <host> -p <port>

指定CA证书:

bash 复制代码
redis-cli --tls --cacert /path/to/ca.crt -h <host> -p <port>

其他实用参数

选择数据库编号:

bash 复制代码
redis-cli -n 1

原始输出模式(便于脚本处理):

bash 复制代码
redis-cli --raw

执行单条命令后退出:

bash 复制代码
redis-cli GET mykey

连接问题排查

检查网络连通性:

bash 复制代码
telnet 192.168.1.100 6379

验证Redis服务状态:

bash 复制代码
systemctl status redis

查看Redis日志:

bash 复制代码
tail -f /var/log/redis/redis-server.log

Redis数据类型命令概述

Redis支持多种数据类型,每种类型有对应的操作命令。以下是主要数据类型及其常用命令:

字符串(String)类型命令

SET key value:设置指定key的字符串值

GET key:获取指定key的值

INCR key:将key中存储的数字值增1

DECR key:将key中存储的数字值减1

APPEND key value:追加值到key的字符串末尾

哈希(Hash)类型命令

HSET key field value:设置哈希表中字段的值

HGET key field:获取哈希表中字段的值

HGETALL key:获取哈希表中所有字段和值

HDEL key field:删除哈希表中一个或多个字段

HKEYS key:获取哈希表中所有字段名

列表(List)类型命令

LPUSH key value:将一个值插入到列表头部

RPUSH key value:将一个值插入到列表尾部

LPOP key:移除并获取列表第一个元素

RPOP key:移除并获取列表最后一个元素

LRANGE key start stop:获取列表指定范围内的元素

集合(Set)类型命令

SADD key member:向集合添加一个或多个成员

SMEMBERS key:获取集合中的所有成员

SREM key member:移除集合中一个或多个成员

SISMEMBER key member:判断member是否在集合中

SCARD key:获取集合的成员数

有序集合(Sorted Set)类型命令

ZADD key score member:向有序集合添加成员

ZRANGE key start stop:通过索引区间返回有序集合成员

ZREVRANGE key start stop:返回有序集合成员,按score降序

ZSCORE key member:获取有序集合成员的score

ZREM key member:移除有序集合中一个或多个成员

通用键命令

TYPE key:返回key所存储的值类型

DEL key:删除指定的key

EXISTS key:检查key是否存在

EXPIRE key seconds:设置key的过期时间

TTL key:获取key的剩余生存时间

Redis数据类型及命令详解

Redis支持多种数据类型,每种类型有对应的操作命令。以下是主要数据类型及其常用命令的详细说明和示例。

字符串(String)

字符串是Redis最基本的数据类型,可以存储文本、数字或二进制数据。

SET key value

设置指定key的值。

示例:

bash 复制代码
SET name "Redis"

GET key

获取指定key的值。

示例:

bash 复制代码
GET name

INCR key

将key中存储的数字值增1。

示例:

bash 复制代码
SET counter 10
INCR counter

APPEND key value

将value追加到key原值的末尾。

示例:

bash 复制代码
APPEND name " DB"

哈希(Hash)

哈希是键值对的集合,适合存储对象。

HSET key field value

设置哈希表中字段的值。

示例:

bash 复制代码
HSET user:1 name "Alice" age 30

HGET key field

获取哈希表中字段的值。

示例:

bash 复制代码
HGET user:1 name

HGETALL key

获取哈希表中所有字段和值。

示例:

bash 复制代码
HGETALL user:1

HDEL key field

删除哈希表中的一个或多个字段。

示例:

bash 复制代码
HDEL user:1 age

列表(List)

列表是简单的字符串列表,按插入顺序排序。

LPUSH key value

将一个或多个值插入列表头部。

示例:

bash 复制代码
LPUSH colors "red" "green"

RPUSH key value

将一个或多个值插入列表尾部。

示例:

bash 复制代码
RPUSH colors "blue"

LRANGE key start stop

获取列表指定范围内的元素。

示例:

bash 复制代码
LRANGE colors 0 -1

LPOP key

移除并获取列表的第一个元素。

示例:

bash 复制代码
LPOP colors

集合(Set)

集合是字符串的无序集合,元素唯一。

SADD key member

向集合添加一个或多个成员。

示例:

bash 复制代码
SADD tags "redis" "database" "nosql"

SMEMBERS key

获取集合中的所有成员。

示例:

bash 复制代码
SMEMBERS tags

SREM key member

移除集合中的一个或多个成员。

示例:

bash 复制代码
SREM tags "nosql"

SISMEMBER key member

判断member是否是集合的成员。

示例:

bash 复制代码
SISMEMBER tags "redis"

有序集合(Sorted Set)

有序集合是字符串的集合,每个成员关联一个分数,按分数排序。

ZADD key score member

向有序集合添加一个或多个成员。

示例:

bash 复制代码
ZADD rankings 100 "Alice" 90 "Bob"

ZRANGE key start stop

通过索引区间返回有序集合的成员。

示例:

bash 复制代码
ZRANGE rankings 0 -1

ZREVRANGE key start stop

返回有序集合中指定区间内的成员,按分数从高到低排序。

示例:

bash 复制代码
ZREVRANGE rankings 0 -1

ZREM key member

移除有序集合中的一个或多个成员。

示例:

bash 复制代码
ZREM rankings "Bob"

其他常用命令

DEL key

删除指定的key。

示例:

bash 复制代码
DEL name

EXISTS key

检查key是否存在。

示例:

bash 复制代码
EXISTS name

EXPIRE key seconds

设置key的过期时间。

示例:

bash 复制代码
EXPIRE name 60

TTL key

获取key的剩余过期时间。

示例:

bash 复制代码
TTL name

以上命令涵盖了Redis主要数据类型的操作,实际使用时可以根据需求组合这些命令实现复杂功能。

相关推荐
AC赳赳老秦32 分钟前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
YMatrix 官方技术社区1 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录2 小时前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong2 小时前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
欧亚学术3 小时前
突发!刚刚新增17本期刊被剔除!
数据库·论文·sci·期刊·博士·scopus·发表
黑白极客4 小时前
怎么给字符串字段加索引?日志系统 一条更新语句是怎么执行的
java·数据库·sql·mysql·引擎
码农水水4 小时前
中国邮政Java面试:热点Key的探测和本地缓存方案
java·开发语言·windows·缓存·面试·职场和发展·kafka
大厂技术总监下海4 小时前
数据湖加速、实时数仓、统一查询层:Apache Doris 如何成为现代数据架构的“高性能中枢”?
大数据·数据库·算法·apache
LeenixP4 小时前
RK3576-Debian12删除userdata分区
linux·运维·服务器·数据库·debian·开发板
知行合一。。。4 小时前
Python--03--函数入门
android·数据库·python