Redis基础知识
1.由于Redis是用C语言写的,所以在安装Redis之前要先具备C语言环境
先安装gcc环境,用yum -y install gcc-c++,安装完可以使用gcc -v来查看版本号,然后使用make编译一下,最后执行一下make install就可以了
2.redis的默认安装路径是/usr/local/bin
3.redis的默认端口是6379
可以在redis的配置文件中修改,可以使用netstat -ntlp grep 6379命令来擦好看端口是否在使用中,用ps -ef | grep redis来查看进程是否开启
4.redis默认有16个数据库,这个在redis的配置文件中有
可以使用select index 来选择使用哪个数据库,用dbsize来查看当前数据库的大小,清空当前数据库:flushdb,清空所有数据库:flushall
5.设置某个key的失效时间:expire key time,单位是秒
6.查看某个key的类型:type key
7. redis是单线程的
因为redis是基于内存操作,所以redis的瓶颈不是CPU,而是机器的内存和网络带宽,为什么redis是单线程的还那么快呐,因为redis将所有的数据都放在内存中,使用多线程去实现redis的话,CPU进行线程之间的切换的时候,会有上下文切换,这些都是比较耗时的操作,对于内存系统来说,没有上下文切换效率才是最高的!
8. redis的事务不具有原子性
redis的单条命令具有原子性,但是事务不具有原子性;reids事务的本质就是一些命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行
redis的事务执行流程:一般会先监听
(1)监听某个key,相当于使用一个乐观锁
watch key
(2)开启事务
multi
(3) 输入一些需要执行的命令
(4)执行事务
exec
如果需要取消事务的话,用:discard命令
9.springboot继承redis之后,原来使用的jedis被替换为了lettuce
jedis:采用的是直连,多个线程操作的话,是不安全的,如果想要避免不安全的事情发生,可以使用jedis pool连接池!jedis更像BIO(阻塞式IO)模式
lettuce:采用的是netty,实例可以在多个线程进行共享,不存在线程不安全的情况,可以减少线程数量,更像是NIO(非阻塞式IO)模式
要导入的依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependencies>
下一篇讲一下redis的配置文件,持久化等