Redis支持哪幾種數(shù)據(jù)類型?
String、List系草、Set、Sorted Set回铛、hashes
一個字符串類型的值能存儲最大容量是多少?
512M
Redis與Memcached的區(qū)別與比較
- Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set命贴,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲食听。memcache支持簡單的數(shù)據(jù)類型胸蛛,String。
- Redis支持?jǐn)?shù)據(jù)的備份碳蛋,即master-slave模式的數(shù)據(jù)備份。
- Redis支持?jǐn)?shù)據(jù)的持久化省咨,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中肃弟,重啟的時候可以再次加載進(jìn)行使用,而Memecache把數(shù)據(jù)全部存在內(nèi)存之中
- redis的速度比memcached快很多
- Memcached是多線程,非阻塞IO復(fù)用的網(wǎng)絡(luò)模型零蓉;Redis使用單線程的IO復(fù)用模型笤受。
redis有哪些數(shù)據(jù)淘汰策略
redis 提供 6種數(shù)據(jù)淘汰策略:
- volatile-lru:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選最近最少使用的數(shù)據(jù)淘汰
- volatile-ttl:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選將要過期的數(shù)據(jù)淘汰
- volatile-random:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中任意選擇數(shù)據(jù)淘汰
- allkeys-lru:從數(shù)據(jù)集(server.db[i].dict)中挑選最近最少使用的數(shù)據(jù)淘汰
- allkeys-random:從數(shù)據(jù)集(server.db[i].dict)中任意選擇數(shù)據(jù)淘汰
- no-enviction(驅(qū)逐):禁止驅(qū)逐數(shù)據(jù)
Redis事務(wù)
Redis Cluster集群架構(gòu),不同的key是有可能分配在不同的Redis節(jié)點上的敌蜂,在這種情況下Redis的事務(wù)機(jī)制是不生效的箩兽。其次,Redis事務(wù)不支持回滾操作
Redis的多數(shù)據(jù)庫機(jī)制
Redis支持多個數(shù)據(jù)庫章喉,并且每個數(shù)據(jù)庫的數(shù)據(jù)是隔離的不能共享汗贫,單機(jī)下的redis可以支持16個數(shù)據(jù)庫(db0 ~ db15) ,在Redis Cluster集群架構(gòu)下只有一個數(shù)據(jù)庫空間秸脱,即db0
Redis性能優(yōu)化
- Master最好不要做任何持久化工作落包,如RDB內(nèi)存快照和AOF日志文件
- 如果數(shù)據(jù)比較重要,某個Slave開啟AOF備份數(shù)據(jù)摊唇,策略設(shè)置為每秒同步一次
- 為了主從復(fù)制的速度和連接的穩(wěn)定性咐蝇,Master和Slave最好在同一個局域網(wǎng)內(nèi)
- 盡量避免在壓力很大的主庫上增加從庫
- 盡可能使用散列表(hashes)