Redis非关系型数据库

2020-08-30  本文已影响0人  Responsibility_

1.Redis概述

Redis:NoSQL数据库,使用内存作为介质,采用键值对(KV)保存数据。

1.业务数据如果命中率很低,没有必要写入Redis
2.业务数据频繁需要写入数据库,也没有必要写入Redis
3.业务数据数据量过大,会给Redis带来很大的压力,也没有必要使用Redis

2.如何安装与配置:

1.启动服务器 :redis-server redis.window.conf (redis.window.conf配置文件,requirepass 可以设置密码,最前面不能为空格)
2.启动客户端: redis-cli.exe
3.可以使用桌面管理工具:RedisDesktopManager


3.五种数据类型

1.hset key 字段 value
2.hmset key 字段1 value1 字段2 value2 字段n value n (存储多个)
3.hget key 字段
4.hmget key 字段1 字段2 字段3 字段n (获取多个字段值)
5.hgetall key (获取键的所有字段与value)

1.lpush key value1 value2 value3 valuen
2.lrange key 开始下标 结束下标 (根据下标位置遍历)

1.sadd key value1 value2 value3
2.smembers key (获取所有的键)

1.zadd key score1 value1 score2 value2 score3 value3 scoren value3
2.zrange key 开始下标 结束下标 (根据下标遍历)
3.zrangebyscore key 开始下标 结束下标(根据分数区间遍历)


常用命令


1.采用内存作为存贮介质 2.kv键值对结构简单不会有太多的开销3.单线程,底层为C/C++

用户不断发起请求,缓存与数据库中都没有要查询的数据。例如ID为-1或者ID为非常大的数据。
解决:1.增加接口层校验,id进行校验,拦截
2.将要查询的数据的值设置为空,防止被同一个ID多次攻击

缓存有没有但数据库中有的数据(如:缓存时间到期),并发很高,都去数据库读取数据了,数据库压力瞬间增大。
解决方案:热点数据永不过期,定时的更新缓存数据

缓存中的数据大批量的到期,而查询数量巨大,引起数据库压力过大甚至down。与缓存击穿不同的是,数据大量到期,击穿是一个数据过期,并发很高。
解决方案:1.热点数据永不过期2.数据过期时间随机,防止同一时间过期。3.缓存数据分布式部署,热点数据均匀分布在不同的缓存数据库中。

上一篇下一篇

猜你喜欢

热点阅读