缓存技术
读取数据直接从缓存获取而不需要查询数据库,大大提高系统性能,减轻数据库压力。
个人理解缓存有点像一个中间件,在我们需要大批量查询数据库,而这些查询又有类似的操作的时候,我们可以考虑使用缓存。比如说查询中国的城市列表,数据量大,变更少。用户量大,如果每次都从数据库读取,那么将会对数据库造成不小的压力。如果我们将其存储在内存中,那么将会减少不少的数据库压力。
redis
redis是一个高性能的Nosql(非关系型),将数据保存在内存中
nosql时以key-value形式储存,不遵循sql标准,事务,表结构等,严格来说不是一种数据库,应该时一种数据结构化储存方法的集合。支持主从同步,支持持久化。读的速度110000次/s,写的速度81000次/s
redis应用场景
1.取最新N个数据的操作(例如最新注册用户的10个用户)
2.排行榜应用,取TOP N操作(把统计结果保存下来,放到缓存里面,一段时间更新)
3.需要精准设定过期时间的应用(精准到毫秒)
4.计数器应用(新闻网站被查看次数,1w人访问update要写1w次,定时定量回写)
5.Uniq操作,获取某段时间所有数据排重值
6.实时系统,反垃圾系统
7.缓存
windows下使用redis
下载redis,在根目录打开cmd
服务器开启带配置启动redis:redis-server.exe redis.conf
打开客户端 redis-cli.exe -h 127.0.0.1 -p 6379 默认连本机 端口号默认6379
对string类型的操作
set key value get key 设置获取单个键值对
mset k v k v mget k k 设置获取多个键值对
incr k decr k 增加减少key对应的值并返回
对key的操作
keys */? 显示当前所有key del key 删掉对应键值对
expire key xx 设置过期时间
对list列表(有序的)的操作 对set集合(无需的)的操作 对hash类型(类似数组)
更多操作参考redis官方手册
简单使用php操作redis
1.实例化redis对象
$redis = new Redis();
2.链接redis服务器
$redis->connect(host,port,timeout);
3.操作redis
$redis->set(key,value,[timeout]);
$redis->get(key);