redis
配置(/etc/redis.conf)
1 | requirepass foobared # 设置密码 |
命令
启动redis
redis-server /etc/redis.conf
根据pattern删除key
redis-cli KEYS "prefix:*" | xargs redis-cli DEL
命令返回值
1 | typedef struct redisReply { |
状态(
#define REDIS_REPLY_STATUS 5
),str
=> valueSET
=> “OK”PING
=> “PONG”
错误(
#define REDIS_REPLY_ERROR 6
),str
=> value整数(
#define REDIS_REPLY_INTEGER 3
),integer
=> value一些整数操作命令,如
INCR
返回增加后的键值字符串(
#define REDIS_REPLY_STRING 1
),str
=> value当请求一个字符串类型键的键值时,若每个键不存在,则返回特殊值
nil(#define REDIS_REPLY_NIL 4)
字符串数组(
#define REDIS_REPLY_ARRAY 2
),str
=> value,element
=> next
备份与恢复
SAVE
同步保存数据到磁盘文件中
dbfilename dump.rdb dir /var/lib/redis/
BGSAVE
异步保存
CONFIG get dir
恢复数据(dir由
/etc/redis.conf
中定义)
Server端处理客户端socket
Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:
- 首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。
- 然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法
- 然后创建一个可读的文件事件用于监听这个客户端 socket 的数据发送