memcache和redis的区别

Posted 程序图

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memcache和redis的区别相关的知识,希望对你有一定的参考价值。

——memcache和memcached的区别:

memcache是项目的名称,

memcached是memcache服务器端可以执行文件的名称

——memcache的基本命令:

get 获取一个指定key的值

set 如果一个不存在则添加 如果存在则更新(重新赋值)    是add方法和replace 方法的结合体。

delete  删除一个key

add 添加一个key

replace 更新(update)

prepend在一个值的前面追加

stats查看memcache的状态

flush_all 清空memcache里面的所有数据

——Redis

key-value存储系统     nosql数据存储       

redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。

 

 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。而Memcached只支持字符串。

Redis的外围由一个键、值映射的字典构成。与其他非关系型数据库主要不同在于:Redis中值的类型[1]  不仅限于字符串,还支持如下抽象数据类型:

与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

 Redis根本是使用内存存储,持久化的关键是这三条指令:SAVE BGSAVE LASTSAVE 

 

当接收到SAVE指令的时候,Redis就会dump数据到一个文件里面。
值得一说的是它的独家功能:存储列表和集合,这是它与mc之流相比更有竞争力的地方。

 

 

redis是一个内存数据库,通常可以作为缓存使用,常用的命令有:

redis-server 启动数据库,默认端口为6379

redis-cli 连接数据库,默认ip是127.0.0.1,端口是6379

redis-cli -h 127.0.0.1 -p 6380 -a 密码  ,连接数据库,指定主机和端口号

 

select db  选择数据库,默认是0,默认最大值是16,可以配置文件中修改(databases 16)

move key db  将key移到新数据库db

 

keys *  查看所有的key

keys pattern 查看匹配的key

exists key  判断对应的key是否存在

get key  获取key对应的值

mget key1 key2 key3  同时获取多个key的值

dump key  返回序列化key的值

ttl key 获取key的剩余生存时间,以秒为单位

pttl key 获取key的剩余生存时间,以毫秒为单位

type key 查看key对应值的类型

randomkey 随机返加一个key

 

 

set key value  设定key对应的值value

setex key timeout value 设定key对应的值,同时设定key的超时时间timeout,以秒为单位

setnx key value  当key不存在时,设置key对应的值value

rename key newkey   用键名newkey重命名键key(注意:即使newkey已经存在),重命名后,newkey的值为原key的值

renamenx key newkey  当newkey不存在时,用键名newkey重命名键key,重命名后,newkey的值为原key的值

expire key seconds  设定key的过期时间,单位是秒

pexpire key milliseconds  设定key的过期时间,单位是毫秒

persist key 移出key的过期时间

 

del key 删除key及其值

del key1 key2 key3  删除多个key及值

flushdb 清空当前数据库的数据

    redis和memecache的不同在于:

    1、存储方式:
    memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。redis主从复制   重启后数据不会丢失,重启后再次加载使用。
    redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化,即master-slave模式的数据备份。
    2、数据支持类型:
    redis在数据支持上要比memecache多的多。提供list,set,hash,zset,string等数据结构的存储
    3、使用底层模型不同:
    新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
    4、运行环境不同:
    redis目前官方只支持LINUX 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化。









以上是关于memcache和redis的区别的主要内容,如果未能解决你的问题,请参考以下文章

redis与memcached有什么区别

redis和memcached的区别详解

redis和memcached的区别

redis和memcached的区别

redis和memcached的区别

redis和memcached的区别