Redis
Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的高性能键值(key-value)对存储数据库。
免费、开源,NoSql的技术之一 被称为结构化数据库
Redis可以做什么:
1、内存存储、持久化,内存中是断电即失的所以持久化很重要(rdb、aof)
2、效率高,可以用于告诉缓存
3、可以发布订阅系统
4、地图信息分析
5、计数器、计数器
特性
1、多样的数据类型
2、持久化
3、集群
4、事务
Windows下使用Redis虽然简单,但是Redis推荐用Linux做开发
Redis默认有16个数据库
默认使用的是第0个
可以使用select进行切换数据库
select 3 //切换数据库
DBSIZE // 查看DB大小
keys * // 查看当前数据库所有的key
flushdb//清除当前数据库中的内容
flushall //清除所有数据库中的内容
Redis是单线程的
Redis是很快的,而官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,
Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程实现,就使用单线程了!
为什么单线程还这么快?
Redis是C语言的,官方提供的数据为 每秒100000+的QPS,完全不必同样使用key-value的Memecache差
误区1、高性能的服务器一定是多线程。
误区2、多线程一定比单线程效率高。(CPU上下文切换)
核心:Redis是将所有的数据全部放在内存中的,所以说使用单线程去操作,效率就是最高的,对多线程来说cpu上下文切换会十分耗时
,对于内存系统来说,如果没有上下文切换,效率就是最高的! 多次读写都是在一个cpu上的,在内存情况下这个就是最佳方案