使用Redis的方法
首先
由於很久沒有碰過Redis,所以我為了自己的筆記而重新確認了Redis的環境搭建和操作。
尽管我写得不好,但如果能帮到任何人,我会感到幸福。
前提条件环境
-
- MacOS Catalina
-
- Docker
- Homebrew
Redis是什么
这是所谓的NoSQL数据库之一。
与RDB相比,它运行速度更快,可以轻松处理各种类型的数据,包括结构化、半结构化和非结构化的数据,而不依赖于预定义的模式。
由于不受预定义限制,它能够保持灵活的数据结构。
此外,它也适用于分布式处理。
NoSQL的参考网址为:https://aws.amazon.com/jp/nosql/
主要的使用案例
我认为为了实现高速的输入/输出操作,主要是在以下几个方面经常使用这种情况。
-
- キャッシュ用途
-
- リアルタイムランキング集計
- 大量メッセージ送信のQueue
数据保存格式
以KVS(键值存储)的格式来存储数据。
KVS是由键和值组成的简单数据存储结构。
当指定键时,相应的值将被返回。
Redis可以使用以下5种数据类型。
-
- String型
-
- List型
-
- Set型
-
- SortedSet型
- Hash型
关于环境搭建
由于Docker非常方便搭建,所以我们可以使用下述命令启动Redis容器。
启动Redis容器
docker run --name redis -d -p 6379:6379 redis redis-server --appendonly yes
确认启动
一切正常运行。
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
XXXXXXXXXXXX redis "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 0.0.0.0:6379->6379/tcp redis
将软件安装到主机电脑上。
为了连接到容器的Redis,您需要在主机上安装Redis。在这里,我们使用Homebrew来进行安装。
% brew install redis
确认连接
使用以下命令进行连接。
% redis-cli
127.0.0.1:6379>
顺利连接成功。
确认各种行为
我大致检查了各种类型的行为,但是每个类型的详细命令和说明可以参考下方的参考资料。数据类型
字符串类型
String类型是二进制安全的,可以保存任何类型的数据。可以保存图像、序列化对象等。
设定值 zhí)
127.0.0.1:6379> set name inagacky
OK
获取值
127.0.0.1:6379> get name
"inagacky"
列表类型
这是一个String类型的列表。
设定值
LPUSH 命令将新元素添加到列表的开头,RPUSH 命令将新元素添加到列表的末尾。
127.0.0.1:6379> lpush sampleList hogehoge
(integer) 1
127.0.0.1:6379> rpush sampleList fugafuga
(integer) 2
获取值
在`lindex`指令中,通过指定索引来获取值。
127.0.0.1:6379> lindex sampleList 0
"hogehoge"
127.0.0.1:6379> lindex sampleList 1
"fugafuga"
Set类型
Set的特性是不允许成员重复。
因此,在下面的例子中,member1被添加了两次,但在Set中只存储了一个。
设定价值
127.0.0.1:6379> sadd test_set member1
(integer) 1
127.0.0.1:6379> sadd test_set member2
(integer) 1
127.0.0.1:6379> sadd test_set member3
(integer) 1
127.0.0.1:6379> sadd test_set member1
(integer) 0
取得数值
127.0.0.1:6379> smembers test_set
1) "member3"
2) "member2"
3) "member1"
SortedSet类型
和Set类相似,但需要为所有成员指定分数。
通过使用该分数,它会帮助我们对成员信息进行排序。
设定数值
127.0.0.1:6379> zadd sort_set 1 member1
(integer) 1
127.0.0.1:6379> zadd sort_set 2 member3
(integer) 1
127.0.0.1:6379> zadd sort_set 3 member2
(integer) 1
获取值
127.0.0.1:6379> ZRANGE sort_set 0 2
1) "member1"
2) "member3"
3) "member2"
哈希类型
Hash类型是一个字段和值的映射。
它可以表示对象结构。
在下面的例子中,我们将taro的信息存储在member1中,
将hanako的信息存储在member2中。
设定值
127.0.0.1:6379> hset member1 name taro
(integer) 1
127.0.0.1:6379> hset member1 age 20
(integer) 1
127.0.0.1:6379> hset member1 gender male
(integer) 1
127.0.0.1:6379> hset member2 name hanako
(integer) 1
127.0.0.1:6379> hset member2 age 21
(integer) 1
127.0.0.1:6379> hset member2 gender female
(integer) 0
获取值
127.0.0.1:6379> hget member1 name
"taro"
127.0.0.1:6379> hget member2 name
"hanako"
127.0.0.1:6379> hkeys member1 # キー情報の取得
1) "name"
2) "age"
3) "gender"
127.0.0.1:6379> hvals member1 # バリューの取得
1) "taro"
2) "20"
3) "female"
127.0.0.1:6379> hGetAll member1 # キーに対するハッシュ値全て取得。
1) "name"
2) "taro"
3) "age"
4) "20"
5) "gender"
6) "male"
软件开发工具包
各种语言的SDK已在以下链接中整理:
https://redis.io/clients
最后
感谢阅读!Redis非常简单,而且具有各种用途。我们应根据需要采用它并且熟练地使用它。