认识redis


redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步.


优点
1) 内存数据库 读写速度快,50个并发 请求10w次,写速度11w次每秒,读速度8.1w次每秒
2) 丰富数据类型
3) Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行
4) 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性

String类型
1) Redis能存储二进制安全的字符串,最大长度为1GB
2) String类型还支持批量的读写操作
3) String类型其实也可以用来存储数字,并支持对数字的加减操作
4) String类型还支持对其部分的修改和获取操作

List类型
1) Redis能够将数据存储成一个链表,并能对这个链表进行丰富的操作,也支持很多修改操作

Sets类型
1) Redis能够将一系列不重复的值存储成一个集合
2) 还支持对集合的子交并补等操作

Sorted Sets类型
1) Sorted Sets和Sets结构相似,不同的是存在Sorted Sets中的数据会有一个score属性,并会在写入时就按这个score排好序。

Hash类型
1) Redis能够存储key对多个属性的数据(比如user1.uname user1.passwd)

Publish/Subscribe
Redis支持这样一种特性,你可以将数据推到某个信息管道中,然后其它人可以通过订阅这些管道来获取推送过来的信息。

数据过期设置
Redis支持按key设置过期时间,过期后值将被删除(在客户端看来是补删除了的)
1) TTL命令可以获取某个key值的过期时间(-1表示永不过期)

事物性
1) Redis本身支持一些简单的组合型的命令,比如以NX结尾命令都是判断在这个值没有时才进行某个命令。
2) Redis还支持自定义的命令组合,通过MULTI和EXEC,将几个命令组合起来执行

持久化
Redis的所有数据都存储在内存中,但是他也提供对这些数据的持久化。
1) 数据快照的原理是将整个Redis中存的所有数据遍历一遍存到一个扩展名为rdb的数据文件中。通过SAVE命令可以调用这个过程。
2) Redis还支持一种追加式的操作日志记录,叫append only file,其日志文件以aof结局,我们一般各为aof文件。要开启aof日志的记录,你需要在配置文件中进行

如下设置: appendonly yes这时候你所有的操作都会记录在aof日志文件中

管理命令
Redis支持多个DB,默认是16个,你可以设置将数据存在哪一个DB中,不同DB间的数据具有隔离性。也可以在多个DB间移动数据。

设置主从数据库

posted on 2014-10-31 15:49  kangbry  阅读(174)  评论(0编辑  收藏  举报

导航