Redis回顾与总结

来源:互联网 发布:2012中国网络购物规模 编辑:程序博客网 时间:2024/06/05 19:27

长时间着重于业务,导致很多不用的技术渐渐淡忘,现在做一点总结。

首先是redis,在我的认知里redis就是一个key-value的存储方式,也是一种数据库,因为是开源的所以我们可以更多的体会到他给我们带来的风采以及好处。

提到 key-value的存储方式 就不得不想到 nosql,新的存储方式也带来了新的很多思路。

返回正题,redis有以下3个特点:

数据持久化,可以将内存中的数据保存在磁盘中,但是这也就代表着数据量不能超过本机内存,另外提供重启的时候进行二次加载;

数据存储方式多样,List,set,zset,hash等结构都是可以存储的;

数据备份,master-slave模式(主/从模式),可以提升系统的可用性.

除了特点之外,redis还有几个比较突出的优点:

读写速度,数据类型已经丰富的特性(待验证),原子性是nosql的优点,

在初探的时候,我对于redis和memcache的理解是差不多的,毕竟是key -value的存储方式,都可以保存在磁盘中,但是个人感觉很多东西的有点和特性只有在有一定数据量的时候才能得到比较直观的展现。

数据类型:

String,hash,set,zset,list

String:redis的基本,二进制安全,可以用来存储图片或者序列化对象,最大存储大小是512m;(set ST "XXXXXXXXXX" get ST,最基本的set,get,key-value的经典存储方式);

hash:类似于java中List<?>的存储方式,?代表了对象,通过hmset,hgetall来存储,存储大小为2的32-1次方键值对(hmset userST aaa bbb ccc ddd acd      hgetall userST);
list:类似于java中的list<String> a = new ArrayList<String>();按照插入顺序排序,插入成功后会返回当前key下List的长度,用lpush和lrange方法,(lpush St 1  lpush St 2  lrange St 0 10),存储大小为2的32-1次方的元素;

set:String的无序集合,String值唯一,通过sadd和smembers方法存取数据,其中,sadd存储数据的时候,如果数据不存在返回0,,反之为1;

zset:String的有序结合,值唯一,存取方法和set一样,存时需要加入double类型的参数来排序(sadd St (0) 11  sadd St(1)12) 其中括号里的括号里面的值决定了redis用的是set还是zset;

基础命令:

redis-cli:连接redis库;

del:删除key,成功返回1;

pfadd:将所有元素的参数保存在指定为第一个参数的键名的hyperloglog数据结构

其实命令用时查api就可以了。所以还是不详细记录了;

redis发布订阅:

这部分是我觉得比较好用的一部分,常拿来做消息队列,(pub/sub)是一种消息通信模式,pub发送,sub接收,redis客户端可以同时订阅多个频道,(subscribe/publish)

redis事务:

redis一样是支持事务的,它是隔离的单个操作,并把事务中的多个命令序列化,依次顺序执行,并且在执行中并不会被其他客户端发来的命令请求打断,要么事务里的所有命令都执行,要么就都不执行.(multi开启事务,exec一次依次执行完)

数据备份:

save,config,bgsave

0 0