Redis学习笔记(二):Redis介绍

Redis,一种高性能的key-value数据库,并提供多种语言的API。它通常称为数据结构服务器,因为值可以是字符串,哈希,列表,集合和有序集合等类型。

redis特点:

  • Redis支持数据的格式化,可以将内存中的数据保存在磁盘中,重启的时候可以加载进行使用。
  • Redis不仅仅支持key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。
  • 性能极高
  • 所有操作都是原子操作,要么全成功,要不不成功。支持事物。

 Redis数据类型:

  Redis支持五种数据类型:string,hash,list,set和zset(sorted set,有序集合)。

  string型:string类型是二进制安全的,可以包含任何数据,比如jpg图片或序列化的对象。一个键最大能存储512M。一般做一些复杂的计数功能的缓存。

  Hash:是一个string类型的field和value的映射表,hash特别适合用于存储对象。每个hash可以存储2^32-1个键值对(40亿)。这里的value存放的是结构化对象,比较方便的就是操作其中的某个字段。当做单点登录的时候,就是用这种数据结构存储用户信息。以cookieid作为key,设置30分钟为缓存过期时间,模拟session效果

127.0.0.1:6379> hmset myfamily yaohuiqin girlfriend weixihui boyfriend
OK
127.0.0.1:6379> hget myfamily yaohuiqin
"girlfriend"
127.0.0.1:6379> hget myfamily weixihui
"boyfriend"

  

  List(列表):列表是简单的字符串列表,按照插入顺序排序。列表最多可以存储2^32-1个元素(40亿)。使用List的数据结构,可以做简单的消息队列的功能。利用lrange命令,做基于redis的分页功能,效果极佳。

127.0.0.1:6379> lpush bigfamily yaohuiqin
(integer) 1
127.0.0.1:6379> lpush bigfamily yaohuiqin
(integer) 2
127.0.0.1:6379> lpush bigfamily weixihui
(integer) 3
127.0.0.1:6379> lpush bigfamily mama
(integer) 4
127.0.0.1:6379> lpush bigfamily baba
(integer) 5

127.0.0.1:6379> lrange bigfamily 0 10
1) "baba"
2) "mama"
3) "weixihui"
4) "yaohuiqin"
5) "yaohuiqin"

  Set:是string类型的无序不重复集合,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。set堆放的是一堆不重复的集合,所以可以做局部去重功能。利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能

127.0.0.1:6379> sadd setfamily yaohuiqin
(integer) 1
127.0.0.1:6379> sadd setfamily weixihui
(integer) 1
127.0.0.1:6379> sadd setfamily mama
(integer) 1
127.0.0.1:6379> sadd setfamily baba
(integer) 1
127.0.0.1:6379> sadd setfamily didi
(integer) 1
127.0.0.1:6379> sadd setfamily yaohuiqin
(integer) 0
127.0.0.1:6379> sadd setfamily weixihui
(integer) 0

127.0.0.1:6379> smembers setfamily
1) "weixihui"
2) "yaohuiqin"
3) "mama"
4) "baba"
5) "didi"

  zset:有序集合,string元素的类型集合,不允许有重复。不同的元素都会关联一个double类型的分数。redis正式通过分数来对集合中的成员进行从小到大的排序。注意,zset的成员唯一,但是分数可以重复。多了一个权重参数score,集合中的元素能够按照score进行排序,可以做排行榜应用,取TOP  N操作。

127.0.0.1:6379> zadd zsetfamily  0 yaohuiqin
(integer) 1
127.0.0.1:6379> zadd zsetfamily 2 weixihui
(integer) 1
127.0.0.1:6379> zadd zsetfamily 3 baba
(integer) 1
127.0.0.1:6379> zadd zsetfamily 0 mama
(integer) 1
127.0.0.1:6379> zrangebyscore zsetfamily 0 100
1) "mama"
2) "yaohuiqin"
3) "weixihui"
4) "baba"

  

 

  

 

posted @ 2018-08-01 11:22  yaohuiqin  阅读(216)  评论(0编辑  收藏  举报