linux软件-Redis(三)

"linux"

Posted by yangsir on February 28, 2025

“本节主要介绍Redis的基础命令 ”

linux软件-Redis(三)

Reids命令

一、Redis常规命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@node2 ~]# redis-cli -h 192.168.109.54 -p 6379

192.168.109.54:6379> set myname "berry" #插入一条记录
OK

192.168.109.54:6379> get myname   #获取myname key的值
"berry"

192.168.109.54:6379> set foo bar
OK

192.168.109.54:6379> get foo
"bar"

192.168.109.54:6379> keys *     #查看所有key
1) "myname"
2) "foo"

二、键的遵循

  • 可以使用ASCII字符
  • 键的长度不要过长,键的长度越长则消耗的空间越多
  • 在同一个库中(名称空间),键的名称不得重复,如果复制键的名称,实际上是修改键中的值
  • 在不同的库中(名称空间),键的同一个名称可以重复
  • 键可以实现自动过期

三、Redis命令详解

1、set

SET key value [expiration EX seconds PX milliseconds] [NX XX]

命令 键 值 [EX 过期时间,单位秒]

NX:如果一个键不存在,才创建并设定值,否则不允许设定

XX:如果一个键存在则设置建的值,如果不存在则不创建并不设置其值

示例:

1
2
3
4
5
6
7
8
9
10
192.168.109.54:6379> set cjk aaa  
OK
192.168.109.54:6379> set cjk bbb NX   
(nil)             #反回提示一个没能执行的操作
192.168.109.54:6379> get cjk
"aaa"
192.168.109.54:6379> set foo abc XX  #设置foo key值,foo之前存在
OK              #修改成功
192.168.109.54:6379> get foo
"abc"

2、get

1
2
3
4
GET key
  summary: Get the value of a key
  since: 1.0.0
  group: string

3、APPEND

1
2
3
4
APPEND key value
  summary: Append a value to a key
  since: 2.0.0
  group: string

示例:

1
2
3
4
5
append添加键中的值(在原有键中附加值的内容):
192.168.109.54:6379> append cjk fda
(integer) 6
192.168.109.54:6379> get cjk
"aaafda"

4、获取指定键中的值的字符串的长度

1
2
192.168.109.54:6379> strlen cjk
(integer) 6

5、删除键

1
2
3
4
192.168.109.54:6379> del cjk
(integer) 1
192.168.109.54:6379> get cjk
(nil)

四、列表的操作

键指向一个列表,而列表可以理解为是一个字符串的容器,列表是有众多元素组成的集合,可以在键所指向的列表中附加一个值

  • LPUSH //在键所指向的列表前面插入一个值(左边加入)
  • RPUSH //在键所指向的列表后面附加一个值(右边加入)
  • LPOP //在键所指向的列表前面弹出一个值(左边弹出)
  • RPOP //在键所指向的列表后面弹出一个值(右边弹出)
  • LINDEX //根据索引获取值,指明索引位置进行获取对应的值
  • LSET //用于修改指定索引的值为指定的值

1、创建一个列表

创建一个新的列表,在帮助中并没产明哪个命令用于创建一个新的列表,实际上创建一个新的列表使用LPUSH或RPUSH都可以。

1
2
3
4
5
6
7
lpush ll cjk   # ll为列表名称,cjk为值

(integer) 1

lindex ll 0   #第一个索引(值)则为0

"cjk"

2、在原有的列表中的左侧加入一个值

1
2
3
4
5
6
192.168.1.11:6379> lpush ll fda    #在原有的列表中的左侧加入一个值
(integer) 2
192.168.1.11:6379> lindex ll 0
"fda"
192.168.1.11:6379> lindex ll 1
"cjk"

3、在原有的列表中的右侧加入一个值

1
2
3
4
5
6
7
8
192.168.1.11:6379> rpush ll www
(integer) 3
192.168.1.11:6379> lindex ll 2
"www"
192.168.1.11:6379> lindex ll 1
"cjk"
192.168.1.11:6379> lindex ll 0
"fda"

4、修改一个已有的列表中的值

1
2
3
4
192.168.1.11:6379> lset ll 0 abc
OK
192.168.1.11:6379> lindex ll 0
"abc"

5、查看列表中的值的数量

1
2
192.168.1.11:6379> llen ll
(integer) 3

6、在已有的列表中右侧弹出(删除)一个值

1
2
192.168.1.11:6379> rpop ll
"www"

7、在已有的列表中左侧弹出(删除)一个值

1
2
3
4
5
6
192.168.1.11:6379> lpop ll
"abc"
192.168.1.11:6379> lpop ll
"cjk"
192.168.1.11:6379> lpop ll
(nil)

8、清空数据库

1
2
3
4
FLUSHDB:删除当前选择的数据库所有key
FLUSHALL:清空所有库
192.168.1.11:6379> flushdb
OK

五、type查看 key 的数据类型

数据类型有:

  • none (key不存在)
  • string (字符串)
  • list (列表)
  • set (集合)
  • zset (有序集)
  • hash (哈希表)
1
2
3
192.168.1.11:6379> set myname "zhenglincong"
192.168.1.11:6379> type myname  #查看key的数据查看类型
string       #字符串
1
2
3
4
192.168.1.11:6379> lpush book_list "programming in scala"  #插入一个列表
(integer) 1 
192.168.1.11:6379> type book_list
list           #列表
1
2
3
4
192.168.1.11:6379> sadd myset "hello"  #插入一个集合
(integer) 1
192.168.1.11:6379> sadd myset "foo" "world"
(integer) 2

注:Redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。

1
2
3
4
5
6
192.168.1.11:6379> smembers myset
1) "foo"
2) "world"
3) "hello"
192.168.1.11:6379> type myset
set

六、Pexpireat设置 key 的过期时间以毫秒计

Redis PEXPIREAT 命令用于设置 key 的过期时间,以毫秒计。key 过期后将不再可用。

实例:

1
2
3
4
5
6
7
8
9
#首先创建一个 key 并赋值:

192.168.1.11:6379> set w3 redis  #创建一条记录

OK

192.168.1.11:6379> PEXPIREAT w3 10000   #为 key 设置过期时间

(integer) 1

七、查看redis状态信息

1
192.168.1.11:6379> info   #查看redis状态信息

image-20250801104444541