前言
在JavaSpring项目中,数据与远程数据库的频繁交互对服务器的内存消耗比较大,而Redis的特性可以有效解决这样的问题。
Redis的几个特性:
Redis以内存作为数据存储介质,读写数据的效率极高;
Redis支持key-value等多种数据结构,提供字符串,哈希,列表,队列,集合结构直接存取于内存,可持久化(RDB和AOF);
支持主从模式,可以配置集群。
下面,我将和大家一起学习分享Redis的相关知识。
一、Redis概述
1.1Redis是什么?
Redis(RemoteDictionaryServer),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
1.2Redis能做什么?
Redis适用的几个场景:
数据库;
会话缓存;
消息队列;
发布、订阅消息;
加载商品列表、评论等。
1.3基础知识
Redis默认有16个数据库,在配置文件中表明了database16。默认使用第0个,且可以使用select进行切换数据库。
[root
localhostbin]#redis-cli-p#进入客户端.0.0.1:.0.0.1:select3#选择数据库OK.0.0.1:[3]dbsize#查看数据库大小(integer)0Redis的线程相关知识
Redis在6.0版本以后开始支持多线程,Redis是基于内存操作,CPU性能不是Redis的瓶颈,Redis的性能取决机器的内存和网络带宽是否良好。
Redis默认是关闭多线程的,即默认只使用单线程。
为什么Redis是单线程还这么快?
误区1:高性能的服务器一定是多线程的?
误区2:多线程(CPU调度,上下文切换)一定比单线程的效率高?
原因:Redis所有的数据都是存放在内存中的,单线程的操作没有上下文的切换,从而达到很高的效率。
二、Redis安装与基本命令
2.1Windows安装
方式一
GitHub