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

一 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
"[email protected]"

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
"[email protected]"

16 strlen

返回key的长度。

127.0.0.1:6379> get name1
"[email protected]"
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

你可能感兴趣的:(Redis)