redis 常规的知识点整理---将持续更新...
1.redis 不单单作缓存使用,某种场景下能够当作数据库使用,替换 mysql,由于 Redis 是能够持久化的,因此能够直接和 disk 进行交互;而 memcached 则不能当数据库使用,只能做缓存使用,不能替换 mysql。mysql
2.仅从缓存这个角度来讲,memcached 要比 redis 好不少,由于它的性能更高(若是想了解,就自行找资料了解其优秀特性,好比在多核处理器上,memcached 效率很高,而 redis 是单进程的,相对效率低一点),memcached 比 redis 少的是功能,从功能齐全的方面来讲,固然 redis 要更强点。因此在选择的时候视具体状况来定。redis
3.本地启动 reids 实例的时候,链接上 redis 实例以后,若是想要关闭 redis,那么请记住不要暴力关闭,好比 kill -9 或者直接关闭窗口的方式去关闭 redis 服务。由于 redis 是作数据服务的,若是暴力关闭,可能会致使 redis 丢失数据。sql
4.Redis 的实际处理速度彻底依靠主进程的执行效率。假如同时有多个客户端并发访问服务器,则服务器处理能力在必定状况下将会降低。假如咱们要提升服务器的并发能力,那么能够采用在单台服务器上部署多个 redis 进程的方式。(注意: 这种方式表面上是提升了并发能力,可是实际上隐藏着一些问题,这些 redis 进程会竞争 cpu 资源的,若是在 redis 里面执行了一些阻塞性的或者很耗 cpu 的操做的时候,那么此实例就会抢占 cpu 资源比较多,致使其它 redis 实例的访问能力都会下降。所以: 这种方式使用的时候必定要注意,不要有一些对 cpu 资源抢占比较厉害的命令或操做,若是有的话,仍是建议一台机器上安装一个 redis 实例,保险一点)数据库
5.redis 是单进程的,因此不用担忧并发问题。因此能够利用 redis 的 incr 自增特性生成流水号。缓存
6.redis 的调优就须要对 redis 的配置有清晰的认识,经过各类参数来调优。可是请注意:使用 config 命令,在测试环境进行调优的话仍是很方便的,可是在生产环境最好仍是不要去使用这个命令,由于通常都是在测试环境调好参数事后,这个参数就固定了,放在配置文件中,在把这些固定的参数放到生产环境的一个过程。假如随便的修改了生产环境的参数以后,用着挺好用,可是并无记录本次操做,别人也不知道,别人看 redis 的配置只会到配置文件中看,但其实这个配置已经和配置文件的有区别了,这时候别人再来调试就很麻烦了。因此通常都是用在测试环境进行调试。安全
7.redis 的持久化,在实际生产环境中,会优先选中开启 AOF 机制,可是在 reids master 上面都会运行主进程,会关掉 RDB 和 AOF ,通常就是在 slave 上开启 AOF 持久化方式,而后关掉 RDB 方式,由于把它开着也会影响性能的。若是 redis 是 master->slave->slave 这种链式模式,那么咱们能够在 slave 上一个开 AOF,一个开 RDB 也能够,也是保证数据安全的一种方式。不过通常都优先选择 AOF 这种方式。服务器