Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
Redis是单线程的 Redis基于内存操作,CPU不是redis的性能瓶颈,redis的瓶颈是机器的内存与网络宽带 Redis为什么这么快?
误区:高性能服务器一定是多线程的
误区:多线程(CPU上线文切换,耗时操作)一定比单线程效率高
速度:CPU>内存>硬盘 核心:redis将所有的数据全部放在内存中的,单线程去操作效率就是最高的
redis是纯内存操作:数据存放在内存中,内存的响应时间大约是100纳秒,这是Redis每秒万亿级别访问的重要基础。
非阻塞I/O:Redis采用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接,读写,关闭都转换为了时间,不在I/O上浪费过多的时间。
单线程避免了线程切换和竞态产生的消耗。
Redis采用单线程模型,每条命令执行如果占用大量时间,会造成其他线程阻塞,对于Redis这种高性能服务是致命的,所以Redis是面向高速执行的数据库
默认16个数据库
Set the number of databases. The default database is DB 0, you can select
a different one on a per-connection basis using SELECT where
dbid is a number between 0 and 'databases'-1
databases 16
清空当前数据库:flushdb
清空全部数据库: flushall