1、redis简介

Redis是一个速度非常快的key-value非关系型存储数据库,可以存储5种形态的键值对,可以将存储在内存中的键值对持久化到硬盘,可以使用复制特性扩展读性能,还可以使用客户端分片扩展写性能。

1.1 redis与其他数据库和软件的对比

名称

类型

数据存储选项

查询类型

附加功能

Redis

使用内存存储的非关系型数据库

字符串、列表、集合、散列表、有序集合

每种数据类型都有自己的专属命令,另外还有批量操作和不完全事务支持

发布与订阅、主从复制、持久化、脚本

Memcached

使用内存存储的键值缓存

键值之间的映射

创建命令、读取命令、更新命令、删除命令以及其他几个命令

为提升性能而设的多线程服务器

MySQL

关系型数据库

每个数据库可以包含多个表,每个表可以包含多个行;可以处理多个表的视图;支持空间和第三方扩展

SELECT、UPDATE、INSERT、DELETE、函数、存储过程

支持ACID性质,主从复制和主主复制

PostgreSQL

关系型数据库

每个数据库可以包含多个表,每个表可以包含多个行;可以处理多个表的视图;支持空间和第三方扩展;支持可定制类型

SELECT、UPDATE、INSERT、DELETE、函数、自定义的存储过程

支持ACID性质,主从复制,由第三方支持的多主复制

MongoDB

使用硬盘存储的非关系型文档存储

每个数据库可以包含多个表,每个表可以包含多个无schema的BSON文档

创建命令、读取命令、更新命令、删除命令、条件查询命令等

支持map-reduce操作,主从复制,分片,空间索引

1.2 使用redis的理由

(1)与关系型数据库相比,发送Redis命令的请求不需要经过典型的查询解析器和查询优化器进行处理,相对MySQL等关系型数据库少了两步操作处理,所以Redis存储的数据执行随机写的速度总是非常迅速的;

(2)与Memcached相比,首先,Redis可以将彼此相关的聚合数据放在同一个结构里,使得访问数据变得特别容易;其次,Redis数据类型多样,使用起来比较灵活,而Memcached只能存储整数型的聚合数据。

2、Redis数据结构简介

数据类型

结构存储的值

结构的读写能力

string

可以是字符串、整数或者浮点型

对整个字符串或者字符串中的一部分执行操作;对整数和浮点数执行自增或者自减操作

list

一个链表,链表上的每个节点都包含了一个字符串

从链表的两端推入或者弹出元素,根据偏移量对链表进行修剪;读取单个或者多个元素;根据值查找或者移除元素

set

包含字符串的无序收集器,并且被包含的每个字符串都是独一无二,各不相同的

添加、获取、移除单个元素;检查一个元素是否存在于集合中;计算交集、并集、差集;从集合中随机获取元素

hash

包含键值对的无序散列表

添加、获取、移除单个键值对;获取所有键值对

zset

字符串成员与浮点数分值之间的有序映射,元素的排列顺序由分值的大小决定

添加、获取、移除单个键值对;根据分值范围或者成员来获取元素

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!