Redis简单应用
这些天因为项目性能上的问题,采用了Redis缓存。
做了一些简单的笔记。
◆ Redis
Redis(REmote DIctionary Server)是一个key-value存储系统。
它支持存储的value类型很多,包括string、list、set、hash等等…
我最喜欢用 key-json字符。
◆ 应用
用的也简单,代码逻辑中读取相应的信息的时候先去Redis读取,
没有数据,再去数据库(mysql)读取。保存到Redis后,返回结果集。
因为Redis的数据是保存在内存里的(分保存的方式,暂且可以理解成保存在内存),
所以查询速度会很快。
◆ 缺点
也很容易看到他的缺点,
一致性问题
。 为了高效查询性能,付出的代价是数据的一致性。- 而且内存的资源是有限的,所以要控制数据量的大小。
◆ 如何去解决的?
如果没有太高的一致性需求的话,
可以直接设置比较短的缓存时间
来解决一致性
的问题。
比方说缓存时间设置为5分钟,5分钟后数据无效,那再次去数据库查询。
要么做定时任务,每隔一段时间做数据同步。
如果数据一致性需求很高,
建议每次数据有变动代码里需要添加删除Redis数据的逻辑
。
(万一这数据的Mapping关系比较复杂的话,光是删掉这些有关系的数据也会让你哭死…)
只要删掉了,下次查询会从新去数据库查询数据。
我这只是简单应用,没什么深度,哈~
下面简单的整理了一下语法
1. 安装Redis (我比较喜欢下docker镜像安装,如果不想这么做可以搜一下…^^)
$ docker run --name test-redis -p 33201:6379 -d redis:latest
- —name 后面的是docker容器名
- -p 32xxx:6379 这里需要注意
32xxx
是你链接redis的时候的Port
。 - -d redis:latest 是你的镜像标签和版本
2. 在shell中访问redis
$ redis-cli -h 127.0.0.1 -p 33201 //链接redis
127.0.0.1:33201> set key01 'hello world' //赋值
OK
127.0.0.1:33201> get key01 //查询
"hello world"
127.0.0.1:33201> del key01 //删除
(integer) 1
127.0.0.1:33201>
2. 设置密码
127.0.0.1:33201> config set requirepass test123 //密码设置为 test123
OK
127.0.0.1:33201> get key01 //因为设置了密码,验证失败
(error) NOAUTH Authentication required.
127.0.0.1:33201> auth test123 //登录验证
OK
127.0.0.1:33201> get key01 //正常
"hello world"
3. 几个常用的命令
#查看所有key
keys * 或 keys "*"
#查看匹配前缀的keys
keys "miao*"
#清空redis
flushdb
#随机取出一个key
randomkey
#查看key的类型
type key
#查看数据库中key的数量
dbsize
#查看服务器信息
info
#查看日志
slowlog get
slowlog get 10
欢迎大家的意见和交流
email: li_mingxie@163.com