Redis
- Redis是Remote Dictionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容
- Redis内存存储与持久化:
1 Redis数据库中的所有数据都存储在内存中
2将数据存储在内存中,程序退出后内存中数据易丢失,不过redis提供了持久化的操作,可以将内存中的数据异步写入到硬盘中,同时
不影响继续提供服务
- 轻量级数据库,一个空redis实例占用的内存只有1MB左右,所以不用担心多个redis实例会额外占用很多内存
- Redis默认支持16个数据库,选择1号数据库,即select 1,Redis不支持为每个数据库设置不同访问密码,所以一个客户端要么可以访问全部数据库,要么连一个数据库也没有权限访问
- Redis的多个数据库之间并不是完全隔离的,比如可以使用FLUSHALL命令清空一个Redis实例中所有数据库中的数据,所以,这些数据库更像一种命名空间,而不适宜存储不同应用程序的数据,如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但不适宜用0号数据库存储A应用的数据而使用1号数据库存储B应用的数据,不同的应用应该使用不同的Redis实例存储数据
- 目前多数公司和团队的redis的应用是以缓存和队列为主,redis可以很容易实现一个高性能的优先级队列
Redis与Memcached
- 性能上,redis是单线程,memcached支持多线程,所以在多核服务器上后者的性能理论上相对高一些。但redis性能足够优异,绝大部分场合其性能不会成为瓶颈