redis笔记

作者注:本文尚未完结,请谨慎阅读

我记录的一些redis使用笔记。

命令中的<>表示必填项。

部署

docker方式

测试:
服务端:
docker pull redis
docker run -p 6379:6379 -d redis

使用docket部署,方便,默认端口6379。

windows系统

一些思考

安全性怎么保证?限制IP(微服务中不好做),添加密码

集群如何做?

哈希crc16(key)%16384设计的好处?2^14 = 16384

value长度限制?

MySQL如何与redis保持数据一致性?

扩展思考:
每种服务单独有的数据库?这种设计好还是不好?

连接

1
2
redis-cli # 默认使用本地的6379
redis-cli -h 192.168.31.212 -p 6379

windows下可以使用RedisDesktopManager连接。

使用

连接:

1
2
3
redis-cli 

redis-cli -h <IP地址> -p <端口> -a <密码>

以下默认已经连接好redis服务。在命令行中操作。

选择数据库:

1
2
select <N> # N为0~15 注:在RedisDesktopManager看到有16个,有说法是32个,存疑。
select 2 # 选择库2

查看keys是否存在:

1
EXISTS <key>

存在返回整数1,不存在返回0。
查看某个db所有的ky:

1
keys *

注意:如果数量太多,不建议这样做。

查看某个hash所有字段:

1
2
3
hgetall <哈希key>

已存在hash,新加一个字段及对应的值:

hset <哈希key> <新的字段> <对应的值>

1
2
3
4

获取hash内某个字段
hget <哈希key> <字段名>
hmget <哈希key> <字段名1> <字段名2>

不存在返回nil
获取某种匹配模式的key:

1
2
keys foo:abc*
获取该db所有以“foo:abc”开头的值

删除key:

1
2
3
4
5
6
删除hash某个字段
hdel <哈希key> <字段名>
删除string类型key
del <key>

注:成功返回整数1,失败(可能哈希key不存在)返回返回0。