Redis的基本数据操作命令(一)

本文详细介绍了Redis中String、Hashes和List类型的基本操作命令,包括设置、获取、增加、删除等操作,适用于数据存储和对象管理。例如,String的set、get、incrby命令,Hashes的hset、hgetall和hdel,以及List的lpush、lpop和ltrim等。

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

一 String类型

1 set

设置key对应的值。

set name Diamond
2 setnx

设置key的值,如果key已存在,返回0。nx为not exist的意思。

127.0.0.1:6379> setnx name Fox
(integer) 0
3 setex

设置key的值,并设置key的存活时间。

127.0.0.1:6379> setex age 10 24
OK
127.0.0.1:6379> get age
"24"
127.0.0.1:6379> get age
(nil)
4 setrange

设置key的指定位置的值

127.0.0.1:6379> set email Diamond@126.com
OK
127.0.0.1:6379> setrange email 8 gmail.com
(integer) 17
127.0.0.1:6379> get email
"Diamond@gmail.com"
5 mset

一次设置多个key的值。成功返回ok表示所有值都被设置,失败返回0表示没有任何值被设置。

127.0.0.1:6379> mset name1 Alex name2 Bob name3 Candy 
OK
6 msetnx

一次设置多个key的值,如果key已存在,则返回0,不会覆盖已存在的key的值,也就是会回滚,所有操作都不被执行。如果成功返回ok。

127.0.0.1:6379> msetnx name1 Diamond name4 Fox
(integer) 0
127.0.0.1:6379> get name1
"Alex"
127.0.0.1:6379> get name4
(nil)
7 get

获取指定key的值

127.0.0.1:6379> get name1
"Alex"
8 getset

设置key的值,并返回key的旧值。如果key不存在,返回nil。

127.0.0.1:6379> getset name1 Diamond
"Alex"
9 getrange

获得指定位置的值。负数为从后面开始,如果指定位置大于长度,则返回最后。

127.0.0.1:6379> get email
"Diamond@gmail.com"
127.0.0.1:6379> getrange email 0 6
"Diamond"
127.0.0.1:6379> getrange email -9 -1
"gmail.com"
127.0.0.1:6379> getrange email 7 100
"@gmail.com"
10 mget

一次获得多个值,如果不存在,返回nil。

127.0.0.1:6379> mget name1 name2 name3 name4
1) "Diamond"
2) "Bob"
3) "Candy"
4) (nil)
11 incr

对key的值加1,也就是做++操作。操作一个不是int的值会返回错误。incr一个不存在的key会设置key为1。

127.0.0.1:6379> set age 24
OK
127.0.0.1:6379> get age
"24"
127.0.0.1:6379> incr age
(integer) 25
127.0.0.1:6379> get age
"25"
12 incrby

对key的值加指定的数。key不存在,则设定key=指定的数。

127.0.0.1:6379> get age
"25"
127.0.0.1:6379> incrby age 5
(integer) 30
127.0.0.1:6379> get age
"30"
127.0.0.1:6379> incrby age1 5
(integer) 5
127.0.0.1:6379> get age1
"5"
13 decr

减去1,执行–操作。key不存在,设为-1。

127.0.0.1:6379> get age1
"5"
127.0.0.1:6379> decr age1
(integer) 4
127.0.0.1:6379> get age1
"4"
14 decrby

减去指定的值。

127.0.0.1:6379> get age1
"4"
127.0.0.1:6379> decrby age1 2
(integer) 2
127.0.0.1:6379> get age1
"2"
15 append

给指定的key追加value,返回value的长度。

127.0.0.1:6379> get name1
"Diamond"
127.0.0.1:6379> append name1 @gmail.com
(integer) 17
127.0.0.1:6379> get name1
"Diamond@gmail.com"
16 strlen

返回key的长度。

127.0.0.1:6379> get name1
"Diamond@gmail.com"
127.0.0.1:6379> strlen name1
(integer) 17

二 Hashes类型

主要用来存储对象类型。

1 hset

设置hash field为指定值,不存在则创建。

127.0.0.1:6379> hset myhashtest field1 Hello
(integer) 1
2 hsetnx

设置hash field的值,如果已存在返回0。

127.0.0.1:6379> hsetnx myhashtest field "hello"
(integer) 1
127.0.0.1:6379> hsetnx myhashtest field "hello"
(integer) 0
2 hsetnx

同时设置key的多个field与值。

127.0.0.1:6379> hmset message name Diamond age 24 sex gender
OK
3 hget

获取指定key的field的值。(对象字段的值)

127.0.0.1:6379> hget message name
"Diamond"
4 hmget

获取全部指定的 key field的值。

127.0.0.1:6379> hmget message name age sex
1) "Diamond"
2) "24"
3) "gender"
5 hincrby

给指定的field加上指定的值。

127.0.0.1:6379> hincrby message age 3
(integer) 27
127.0.0.1:6379> hget message age
"27"
6 hexists

判断指定field是否存在

127.0.0.1:6379> hexists message age
(integer) 1
7 hlen

返回指定key的field数。

127.0.0.1:6379> hlen message
(integer) 3
8 hdel

删除指定key的field。

127.0.0.1:6379> hdel message age
(integer) 1
127.0.0.1:6379> hlen message
(integer) 2
9 hkeys

返回key的所有field

127.0.0.1:6379> hkeys message
1) "name"
2) "sex"
10 hvals

返回key的所有value。

127.0.0.1:6379> hvals message
1) "Diamond"
2) "gender"
11 hgetall

返回所有的field和value。

127.0.0.1:6379> hgetall message
1) "name"
2) "Diamond"
3) "sex"
4) "gender"

三 list类型操作

list是一个链表结构,理解为链表的名字。

1 lpush

在key的头部添加元素。

127.0.0.1:6379> lpush listtest Diamond
(integer) 1
127.0.0.1:6379> lpush listtest Fox
(integer) 2
127.0.0.1:6379> lpush listtest Alex
(integer) 3
127.0.0.1:6379> lrange listtest 0 -1
1) "Alex"
2) "Fox"
3) "Diamond"
2 rpush

在list的尾部添加元素。

127.0.0.1:6379> rpush listtest Jam
(integer) 4
127.0.0.1:6379> rpush listtest jone
(integer) 5
127.0.0.1:6379> rpush listtest LuLu
(integer) 6
127.0.0.1:6379> lrange listtest 0 -1
1) "Alex"
2) "Fox"
3) "Diamond"
4) "Jam"
5) "jone"
6) "LuLu"
3 linsert

在指定位置的前或后插入数据

127.0.0.1:6379> linsert listtest before LuLu Auke
(integer) 7
127.0.0.1:6379> lrange listtest 0 -1
1) "Alex"
2) "Fox"
3) "Diamond"
4) "Jam"
5) "jone"
6) "Auke"
7) "LuLu"
127.0.0.1:6379> linsert listtest after Jone Miss
(integer) -1
127.0.0.1:6379> lrange listtest 0 -1
1) "Alex"
2) "Fox"
3) "Diamond"
4) "Jam"
5) "jone"
6) "Auke"
7) "LuLu"
4 lset

设置指定位置的元素的值。

127.0.0.1:6379> lset listtest 0 Adell
OK
127.0.0.1:6379> lrange listtest 0 -1
1) "Adell"
2) "Fox"
3) "Diamond"
4) "Jam"
5) "jone"
6) "Auke"
7) "LuLu"
5 lrem

删除和指定value相同值的元素。删除count个。count小于0时,从尾部开始删除。count=0时,全部删除。

127.0.0.1:6379> lrem listtest 2 Adell
(integer) 1
127.0.0.1:6379> lrange listtest 0 -1
1) "Fox"
2) "Diamond"
3) "Jam"
4) "jone"
5) "Auke"
6) "LuLu"
6 ltrim

保留指定区间内的元素。

127.0.0.1:6379> lrange listtest 0 -1
1) "Fox"
2) "Diamond"
3) "Jam"
4) "jone"
5) "Auke"
6) "LuLu"
127.0.0.1:6379> ltrim listtest 1 -1
OK
127.0.0.1:6379> lrange listtest 0 -1
1) "Diamond"
2) "Jam"
3) "jone"
4) "Auke"
5) "LuLu"
7 lpop

从list的头部删除元素。

127.0.0.1:6379> lrange listtest 0 -1
1) "Diamond"
2) "Jam"
3) "jone"
4) "Auke"
5) "LuLu"
127.0.0.1:6379> lpop listtest
"Diamond"
127.0.0.1:6379> lrange listtest 0 -1
1) "Jam"
2) "jone"
3) "Auke"
4) "LuLu"
8 rpop

从尾部删除元素。

127.0.0.1:6379> lrange listtest 0 -1
1) "Jam"
2) "jone"
3) "Auke"
4) "LuLu"
127.0.0.1:6379> rpop listtest
"LuLu"
127.0.0.1:6379> lrange listtest 0 -1
1) "Jam"
2) "jone"
3) "Auke"
9 rpoplpush

从第一个list删除元素,添加到第二个list的头部。操作是原子性的。第一个list为空返回nil。

127.0.0.1:6379> lrange listtest2 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpoplpush listtest listtest2
"Auke"
127.0.0.1:6379> lrange listtest2 0 -1
1) "Auke"
2) "4"
3) "3"
4) "2"
5) "1"
10 lindex

返回list指定index的值。

127.0.0.1:6379> lindex listtest2 0
"Auke"
11 llen

返回指定list的长度。

127.0.0.1:6379> llen listtest2
(integer) 5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值