Redis初探
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Windows下搭建(ReferenceLink)
- 下载Redis(Download)
- cmd切换到运行目录,运行redis-server.exe redis.conf
- 运行 redis-cli.exe -h 127.0.0.1 -p 6379,其中 127.0.0.1是本地ip,6379是redis服务端的默认端口。
- 输入(1)set test “Helloworld”;(2) get test;搭建成功。
Redis命令(ReferenceLink)
与Memcached比较(ReferenceLink)
- 值类型不同,memcached只有Value,Redis有Hash,List,String,Set, SortedSet等多种数据类型。Redis的多数据类型设计,保证了数据能够直接在服务器端做修改等操作,Memcached只能读到客户端处理后再保存到服务器端,效率比Redis低。
- Memcached是完全存储在内存,断电后数据丢失;Redis是所有的Key必须在内存,Value可以写入硬盘,断电后可以恢复。
- Memcached是预分配内存,空间浪费大。Redis是现场申请内存。
- Memcached是多线程,分为监听线程、worker线程,引入锁,带来了性能损耗。Redis使用单线程的IO复用模型,将速度优势发挥到最大,也提供了较简单的计算功能 ;
- Memcached提供了cas命令来保证数据一致性.而Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断 。