redis

拥有回忆 提交于 2020-03-03 03:46:59

Redis是什么

基于键值的高性能存储服务器

可做于缓存数据库使用

数据结构存储

消息中间件

Redis优势/特点

最大的亮点就是速度快,因为数据存在内存中。Redis读的数度是110000次/s,写的数度是81000次/s。(,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1))

支持丰富的数据结构存储。

Redis的所有操作都是原子性。多个操作也支持原子性,(通过MULTI和EXEC指令包起来。)

丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

持久化数据

数据类型

常用:

1、String:是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。

命令:get、set、mget批量获取多个key值(mget name name2 name3 。。。)、incr && incrby 对key对应的值进行加加操作 decr 减减

2、Hash:键值对集合,是一个String类型的field和value的映射表,适合用于存储对象

命令:hset、hget、hgetall。

3、List:链表(底层是双向链表,对两端的操作性能很高,通过下标查询性能很低。按插入顺序排序)

命令:lpush头部添加一个元素、lrange获取key对应的指定范围的元素,-1获取所有、lpop从key对应的尾巴删除一个元素、rpush尾部添加元素、rpop从key对应的尾巴删除一个元素

4、Set:类似list的无序集合,不可重复,底层是一个value为null的hash表

命令:sadd添加、smenbers获取key对应的所有元素、spop随机返回并删除key对应的一个元素

5、Sorter Set:有序集合,不可重复。有每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set因此非常适合实现排名

命令:zadd添加、zrange获取指定范围的元素,-1获取所有、zrem删除key对应的一个元素。

扩展:

6、Bitmaps

7、Hyperlogs

8、Geospatial Indexes

注意事项:

key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;

key也不要太短,太短的话,key的可读性会降低;

详细 http://www.runoob.com/w3cnote/redis-intro-data-structure.html

介绍

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!