Redis 常用命令

本文全面解析Redis的安装配置、常用操作命令及五大核心数据类型的运用,包括String、List、Set、Hash和ZSet,助您快速掌握Redis应用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis 常用命令

1 Redis安装、链接

以我所用的系统(deepin)为例

安装Redis:

sudo apt update
sudo apt install redis-server

启动Redis:

#使用默认配置启动
➜  ~ redis-server
#使用配置文件启动,访问配置文件有的需要管理员权限,要在命令前加sudo
➜  ~ redis-server /etc/redis/redis.conf 

修改/etc/redis/redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动

链接Redis:

➜ ~ redis-cli      #链接本地默认端口的Reids                        
➜ ~ redis-cli -h host -p port -a password #链接远程服务器

连接redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动。

127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

切换数据库:

Redis默认16个数据库,可以再配置文件修改。切换数据库的命令:

127.0.0.1:6379> select index # index从0开始



关闭Redis:

单实例关闭:

➜  ~ redis-cli shutdown

指定端口关闭:

➜  ~ redis-cli -p 6379 shutdown

2 key命令

参考:https://baijiahao.baidu.com/s?id=1623008109307725071&wfr=spider&for=pc

**keys:**查询当前库的键

127.0.0.1:6379> keys pattern

keys * :查询当前库的所有键

**exists:**判断某个键是否存在

127.0.0.1:6379> exists key [key ...]

**type:**查看键的类型

127.0.0.1:6379> type key

del:删除某个键

127.0.0.1:6379> del key [key ...]

**expire:**为键值设置过期时间,单位秒

127.0.0.1:6379> expire key seconds

ttl: 查看还有多少秒过期,-1表示永不过期 (-2表示已过期)

127.0.0.1:6379> ttl key

**dbsize:**查看当前数据库的key的数量

127.0.0.1:6379> dbsize

**Flushdb:**清空当前库

127.0.0.1:6379> Flushdb

**Flushall:**清空当前库

127.0.0.1:6379> Flushall

3 五大数据类型命令

3.1 String命令

get: 查询对应键值

127.0.0.1:6379> get key

set: 添加键值对

127.0.0.1:6379> set key value [EX seconds] [PX milliseconds] [NX|XX]

append: 将给定的 追加到原值的末尾

127.0.0.1:6379> append key value

strlen: 获得值的长度

127.0.0.1:6379> strlen key

setnx: 只有在 key 不存在时设置 key 的值

127.0.0.1:6379> setnx key value

incr:

将 key 中储存的数字值增1

只能对数字值操作,如果为空,新增值为1

127.0.0.1:6379> incr key

decr:

将 key 中储存的数字值减1

只能对数字值操作,如果为空,新增值为-1

127.0.0.1:6379> decr key

incrby / decrby:

将 key 中储存的数字值增减。自定义步长。

127.0.0.1:6379> incrby key increment

**mset:**同时设置一个或多个 key-value对

127.0.0.1:6379> mset key value [key value ...]

**mget:**同时获取一个或多个 value

127.0.0.1:6379> mget key [key ...]

**msetnx:**同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

127.0.0.1:6379> msetnx key value [key value ...]

**getrange :**获得值的范围,类似java中的substring

127.0.0.1:6379> getrange key start end

**setrange <起始位置>:**用覆写所储存的字符串值, 从<起始位置>开始。

127.0.0.1:6379> setrange key offset value

**setex :**设置键值的同时,设置过期时间,单位秒。

127.0.0.1:6379> setex key seconds value

**getset:**以新换旧,设置了新值同时获得旧值。

127.0.0.1:6379> getset key value

3.2 List命令

**lpush/rpush:**从左边/右边插入一个或多个值。

127.0.0.1:6379> lpush key value [value ...]

**lpop/rpop:**从左边/右边吐出一个值。

127.0.0.1:6379> lpop key

**rpoplpush:**从列表右边吐出一个值,插到列表左边。

127.0.0.1:6379> rpoplpush source destination

**lrange:**按照索引下标获得元素(从左到右)

127.0.0.1:6379> lrange key start stop

**lindex:**按照索引下标获得元素(从左到右)

127.0.0.1:6379> lindex key index

**llen:**获得列表长度

127.0.0.1:6379> llen key

**linsert before:**在的后面插入 插入值

127.0.0.1:6379> linsert before BEFORE|AFTER pivot value

**lrem:**从左边删除n个value(从左到右)

127.0.0.1:6379> lrem key count value

3.3 set命令

sadd: 一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

127.0.0.1:6379> sadd key member [member ...]

smembers: 取出该集合的所有值。

127.0.0.1:6379> smembers key

sismember: 判断集合是否为含有该值,有返回1,没有返回0

127.0.0.1:6379> sismember key member

**scard:**返回该集合的元素个数。

127.0.0.1:6379> scard key

srem : 删除集合中的某个元素。

127.0.0.1:6379> srem key member [member ...]

spop: 随机从该集合中吐出一个值。

127.0.0.1:6379> spop key [count]

srandmember: 随机从该集合中取出n个值,不会从集合中删除

127.0.0.1:6379> srandmember key [count]

**sinter:**返回两个集合的交集元素。

127.0.0.1:6379> sinter key [key ...]

**sunion:**返回两个集合的并集元素。

127.0.0.1:6379> sunion key [key ...]

**sdiff:**返回两个集合的差集元素。

127.0.0.1:6379> sdiff key [key ...]

3.4 hash命令

**hset:**给集合中的 键赋值

127.0.0.1:6379> hset key field value

**hget:**从集合取出value

127.0.0.1:6379> hget key field

**hmset :**批量设置hash的值

127.0.0.1:6379> hmset key field value [field value ...]

hexists: 查看哈希表 key 中,给定域 field 是否存在。

127.0.0.1:6379> hexists key field

**hkeys:**列出该hash集合的所有field

127.0.0.1:6379> hkeys key

hvals: 列出该hash集合的所有value

127.0.0.1:6379> hvals key

hincrby: 为哈希表 key 中的域 field 的值加上增量 increment

127.0.0.1:6379> hincrby key field increment

hsetnx: 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .

127.0.0.1:6379> hsetnx key field value

3.5 zset命令

zadd : 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

127.0.0.1:6379> zadd key [NX|XX] [CH] [INCR] score member [score member ...]

zrange : 返回有序集 key 中,下标在 之间的元素

带WITHSCORES,可以让分数一起和值返回到结果集。

127.0.0.1:6379> zrange key start stop [WITHSCORES]

zrangebyscore: 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。

# 有序集成员按 score 值递增(从小到大)次序排列。
127.0.0.1:6379> zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

# 有序集成员按 score 值递增(从大到小)次序排列。
127.0.0.1:6379> zrangebyscore key max min [WITHSCORES] [LIMIT offset count]

zincrby: 为元素的score加上增量

127.0.0.1:6379> zincrby key increment member

zrem: 删除该集合下,指定值的元素

127.0.0.1:6379> zrem key member [member ...]

zcount: 统计该集合,分数区间内的元素个数

127.0.0.1:6379> zcount key min max

zrank: 返回该值在集合中的排名,从0开始。

127.0.0.1:6379> zrank key member
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值