redis通信基本了解
Redis 客户端与服务端之间的通信协议是在 TCP 协议上构建的。Redis 定义了 RESP(Redis Serialization Protocol,Redis 序列化协议)实现客户端与服务端的通信,协议本身很简洁。
请求格式
格式: *<参数数量>CRLF $<参数1的字节数>CRLF <参数1>CRLF ... $<参数N的字节数>CRLF <参数N>CRLF 示例: set hello world *3 $3 SET $5 hello $5 world =================== 返回结果样式 状态回复:第一个字节为“+”。 错误回复:第一个字节为“-”。 整数回复:第一个字节为“:”。 字符串回复:第一个字节为“$”。 多条字符串回复:第一个字节为“*”。 例如: # nc 127.0.0.1 6379 set hello world +OK sethx hello world -ERR unknown command 'sethx' incr counter :1 get hello world $5 hello keys hel* *1 $5 hello
string
- 增加:set key value ;mset;setex key seconds value
- 向某个键追加值:append key val
- 查询:get key;mget
字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。https://blog.csdn.net/weixin_38399962/article/details/79408597
键命令(所有键都为字符串类型)
- keys 正则:获取符合正则的键的值
- exist:是否存在
- type:值类型
- del:删除
- expire:设置过期时间
- ttl:查看有效时间
hash
- 增加修改:hset key field val,hmset
- 获取:hkeys key:获取hash对象的所有属性,hget/hmget key field:获取某个属性值,hvals key:获取某个键所有属性值,hgetall key:获取所有键值对
- 删除:hdel key field
list
- 增加:lpush,rpush val1 val2;linsert key before或after 现有元素 新元素
- 获取:lrange key start stop(获取值和列表一样);lindex;lpop(列表左边弹出一个值,并返回
- 设置:lset key index val
- 删除:lrem key count val (将列表中前count次出现的值为value的元素移除,count>0:从左往右;count<0从右往左;count=0:移除所有)
set
- 增加:sadd key member1 member2
- 获取所有key: smember key
- 检查给定元素是否在集合中:sismember member
- 删除:srem key member
zset
- 增加:zadd key score1 member1 score2 member2 ...
- 下标获取:zrange key start stop(下标)
- 权值获取:zrangebyscore key min max(权值)
- 获取某个元素的权值:zscore key member
- 删除指定元素:zrem key member1 member2 ...
- 删除权重在指定范围的元素:zremrangebyscore key min max