1、Redis和Memorycache的区别:Redis使用单线程而Memcached是多线程,Redis使用现场申请内存的方式来存储数据,并且可以配置虚拟内存;Memcached使用预分配的内存池的方式,Redis实现了持久化和主从同步,容灾难性更强,而Memcached只是存放在内存中,服务器故障关机后数据就会消失,Redis支持五种数据类型:string,list,hash,set和zset。而Memcached只是简单的key和value,Redis的优点:对数据高并发读写,对海量数据的高效存储和访问、对数据的可扩展性和高可用性,Redis应用场景:取最新N个数据的操作、排行榜应用取TOP N操作,需要精准设定过期时间的应用、计数器应用、获取某段时间所有数据排重值的唯一性操作,实时消息系统,构建队列系统、作缓存。
2、Redis的吴忠数据结构:redisObject包含type,encoding,refcount,lru,*ptr
数据结构 编码类型 常用命令
String int,embstr(39),raw set/setnx name value
list ziplist(64、512),list ziplist(64,512) lpush、rpop、llen
hash hashtable hset、hlen、hget
set intset(512),hashtable sadd、scard、smembers、 srem
zset ziplist(64,128),skiplist zadd、zcard、zrangebyscore
对于embstr编码创建字符串对象只需要内存分配一次,调用一次内存释放函数,而raw都需要两次,可使用INCR和INCRBY生成分布式系统唯一序列号ID。