redis是基于内存操作的,CPU不是 Redis的性能瓶颈,Redis的性能瓶颈是 网络带宽和服务器的内存,如果能使用 单线程来实现,就用单线程。
Redis是基于C语言写的,官方提供的数据为 100000+ 的QPS,不必Memecache 差。
redis单线程为什么这么快?
总结:
- 高性能的服务器不一定是多线程的。
- 多线程会(CPU上下文切换)不一定比单线程效率高
核心:
Redis将所有的数据都放在内存中,所以使用单线程去操作效率是最高的,因为多线程(CPU上下文切换-是一个耗时的操作)。对于内存系统来说,如果没有上下文切换,效率就是最高的了。而Redis的多次读写都是在 一个 CPU上的,在内存情况下,这就是最佳的方案。
CPU的上下文切换在 1500-2000 纳秒之间,如果切换太多的话,就会比较耗时了。
先认识两个命令吧。
flushdb -> 清除当前的数据库
flushall -> 清除所有的数据库
type k -> 查看 k的数据类型
ttl k -> 查看过期时间
expire k 2 -> 将 k设置过期时间 2s( 所有的操作都是 秒为单位)
move k 9 -> 将 k移动到 第9个数据库