redis学习

本文摘自 https://www.cnblogs.com/runningsmallguo/p/5871412.html 一起学习一起进步 感谢分享

1.作者

redis的作者,他叫Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。

他使用的网名是antirez,如果你有兴趣,可以去他的博客逛逛,地址是antirez.com,当然也可以去follow他的github,地址是http://github.com/antirez

2.redis是什么?

redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库

`[redis是一款优秀的nosql(非关系型),key-vlaue,内存级别的数据库!redis是单线程,操作是安全的! 关系型:用一张二维表格来表示和存储现实生活中对象的这一类数据库。 oracle ,mysql]()

非关系型(nosql):不用二维表格,比如key-value ,文档等数据.Redis,MongoDB ,Hadoop

3.redis特点

1.Redis支持数据的持久化,会根据一定的策略持久化到磁盘,即使断电也不会丢失数据. 2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3.Redis支持数据的备份,即master-slave模式的数据备份。

4.redis数据结构

redis是一种高级的key:value存储系统,其中value支持五种数据类型:

1.字符串(strings) 2.字符串列表(lists) 3.字符串集合(sets) 4.有序字符串集合(sorted sets) 5.哈希(hashes)

而关于key,有几个点要提醒大家:

1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率; 2.key也不要太短,太短的话,key的可读性会降低; 3.在一个项目中,key最好使用统一的命名模式,例如user:10000:passwd。

5.数据及应用场景

1.String : string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如图片或者序列化的对象。String类型是Redis最基本的数据类型,一个键最大能存储512MB。常用命令:① get、获取存储在指定键中的值② set、设置存储在指定键中的值③ del、删除存储在指定键中的值(这个命令可以用于所有的类型)

使用场景:利用incr生成id,decr减库存, 缓存–过期时间设置,模拟session


2.list: Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 常用命令: ① rpush、将给定值推入列表的右端 ② lrange、获取列表在指定范围上的所有值 ③ lindex、获取列表在指定范围上的单个元素

使用场景: 多任务调度队列


3.set: Redis的Set是string类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 常用命令: 2 ①sadd、将给定元素添加到集合 ②smembers、返回集合包含的所有元素 ③sismember、检查指定元素是否存在于集合中

使用场景: 微博关注数


4.hash : Redis hash 是一个键值(key=>value)对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 常用命令: ①hset、在散列里面关联起指定的键值对 ②hget、获取指定散列键的值 ③hgetall、获取散列包含的所有键值对 ④hdel、如果给定键存在于散列里面,那么移除这个键

使用场景:购物车


5.zset: Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。 常用命令: ①zadd、将一个带有给定分值的成员添加到有序集合里面 ②zrange、根据元素在有序排列中所处的位置,从有序集合里面获取多个元素 ③zrangebyscore、获取有序集合在给定分值范围内的所有元素 ④zrem、如果指定成员存在于有序集合中,那么移除这个成员

使用场景:排行榜


6.redis优点

1.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 2.丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 3.原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

4.丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

7.redis配置文件的几大块区域

1.通用(general) 2.快照(snapshotting) 3.复制(replication) 4.安全(security) 5.限制(limits) 6.追加模式(append only mode) 7.LUA脚本(lua scripting) 8.慢日志(slow log) 9.事件通知(event notification)

posted @ 2019-05-08 11:16  鱼籽儿39  阅读(102)  评论(0编辑  收藏  举报