深入浅出Redis 使用端口与协议(redis端口 协议)
深入浅出:Redis 使用端口与协议
Redis是一个快速、开源、支持高级数据结构的NoSQL数据库,是目前最火的内存数据库之一。它是一个支持网络的数据结构存储服务器,通过基于TCP的协议与客户端进行通信。
在本文中,我们将探讨Redis的端口以及协议,以更好地理解如何使用Redis来存储和处理数据。
Redis端口
Redis默认使用的端口是6379。如果您想修改默认端口,只需在Redis的配置文件中进行更改,具体步骤如下:
找到 Redis 的配置文件,打开终端,使用如下命令来查看 Redis 的配置文件路径:
redis-cli CONFIG GET dir
然后,在该路径下找到 Redis 的配置文件redis.conf文件,打开文件并找到下列代码:
# TCP 监听的端口号。
# 可以将其置为 0,让 Redis 为你管理一个空闲端口。
port 6379
将端口号修改为您想使用的端口号即可。
Redis协议
Redis协议是Redis客户端和服务器之间进行通信的基础。Redis客户端与服务器之间的消息被称为请求(request)和响应(response)。请求和响应是由简单的文本协议发送的,格式非常简单,易于实现。
Redis协议的格式如下:
$3\r\nSET\r\n$5\r\nmykey\r\n$7\r\nmyvalue\r\n
这里有几个细节需要注意:
– 每个消息都以一个字节 “$” 开头,表示这是一个请求或响应的标识符。
– 字节 “$” 后面是一个数字,表示该消息后面的字节数。
– “\r\n” 表示一个换行符。
在上面的示例中,请求由三个部分组成:SET、mykey和myvalue。第一部分表示请求的类型,第二部分和第三部分是请求类型所需的参数。
Redis通过以下四个请求来和客户端进行通信:
– SET:设置一个 key-value 值
– GET:获取对应 key 的 value 值
– INCR:键对应的值加一
– DEL:删除指定的 key
以下是一个示例代码,展示了如何使用Redis协议来进行数据的增删改查:
import socket
class Client:
def __init__(self):
self.host = ‘localhost’
self.port = 6379
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.connect((self.host, self.port))
def set(self, key, value):
command = f’$3\r\nSET\r\n${len(key)}\r\n{key}\r\n${len(value)}\r\n{value}\r\n’
self.socket.sendall(command.encode())
return self.receive()
def get(self, key):
command = f’$3\r\nGET\r\n${len(key)}\r\n{key}\r\n’
self.socket.sendall(command.encode())
return self.receive()
def delete(self, key):
command = f’$3\r\nDEL\r\n${len(key)}\r\n{key}\r\n’
self.socket.sendall(command.encode())
return self.receive()
def receive(self):
response = self.socket.recv(1024).decode()
_type = response[0]
payload_length = int(response[1:].split(“\r\n”)[0])
payload = response.split(“\r\n”)[1]
return payload
client = Client()
client.set(‘mykey’, ‘myvalue’)
print(client.get(‘mykey’))
client.delete(‘mykey’)
总结
Redis是一种流行的NoSQL内存数据库,它通过基于TCP的协议与客户端进行通信。默认情况下,Redis使用端口6379,但可以修改配置文件来更改端口号。Redis协议是Redis客户端和服务器之间进行通信的基础,格式非常简单,易于实现。Redis允许通过四种请求(SET、GET、INCR、DEL)进行数据的增删改查。在本文中,我们展示了如何使用Python代码来使用Redis协议进行数据处理。