Redis (Remote Dictionary sever)远程字典服务,是一个开源的使用ANSI c语言编写,支持网络, 可基于内存亦可持久化的日志型,key-value数据库,并支持多种语言的API。免费和开源, 也被称之为结构化数据库
redis默认有16个数据库
查看配置文件,可以看到database 16,数据库有16个,编号0-15,默认使用的是第0号数据库
可以使用select 编号,来选择数据库
查看当前数据库的所有的key, keys *
清除当前的数据库:flushdb
清空全部数据库:flushall
redis是单线程的!
官方表示:redis是基于内存的操作,CPU不是redis性能的瓶颈,redis的瓶颈是根据机器的内存和网络的带宽,既然可以使用单线程来实现 ,就使用单线程了!
redis是C语言写的,官方提供的数据为10万+的QPS,完全不比同样是使用key-value的memecache差
redis为什么单线程速度还这么快:
误区1:高性能的服务器一定是多线程的?
误区2:多线程(CPU上下文切换)一定比单线程效率高!
CPU > 内存 > 硬盘的速度
核心:redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是高,多线程(CPU上下文切换:耗时操作)对于内存系统来说,如果没有上下文切换效率是最高的。多次读写都是在一个cpu上的,在内存情况下这个就是最佳方案