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

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

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

(一)初识Redis的更多相关文章

  1. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  2. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  3. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  4. 01:初识Redis

    付磊和张益军两位大咖写的葵花宝典(Redis开发和运维)学习笔记. 一.初识Redis 1.redis简介 Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的 ...

  5. redis实战笔记(1)-第1章 初识Redis

    第1章 初识Redis 注:本书在redis3.0版本的,比如redis3.0以后支持服务端集群.3.0之前只能客户端分片.    本章主要内容 1.Redis与其他软件的相同之处和不同之处 2.Re ...

  6. Linux(5)- MariaDB、mysql主从复制、初识redis

    一.MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可. 开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL ...

  7. 分布式数据存储 之 Redis(一) —— 初识Redis

    分布式数据存储 之 Redis(一) -- 初识Redis 为什么要学习并运用Redis?Redis有什么好处?我们步入Redis的海洋,初识Redis. 一.Redis是什么 ​ Redis 是一个 ...

  8. [转]Redis之(一)初识Redis

    原文地址:http://blog.csdn.net/u012152619/article/details/52550315 Redis之(一)初识Redis 标签: Redisredis-server ...

  9. 1.初识Redis

    作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-08-14 20:35:36 星期三 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...

  10. Redis——学习之路一(初识redis)

    在接下来的一段时间里面我要将自己学习的redis整理一遍,下面是我整理的一些资料: Redis是一款依据BSD开源协议发行的高性能Key-Value存储系统(cache and store),所以re ...

随机推荐

  1. Python中的 socket示例

    linux send与recv函数详解   1 #include <sys/socket.h> 2 ssize_t recv(int sockfd, void *buff, size_t ...

  2. SDKManager连不上墙外的网,列表刷新不出来怎么办?

    现在我们都无法正常访问外国的网站了,尤其是Google,这个也没了,问题出不去,好多东西都解决的不是很好,包括SDKManager这个都无法刷新列表,当然在这里,我没有介绍你使用VPN的使用,这样做就 ...

  3. Linux kernel的中断子系统之(五):驱动申请中断API

    返回目录:<ARM-Linux中断系统>. 总结:二重点区分了抢占式内核和非抢占式内核的区别:抢占式内核可以在内核空间进行抢占,通过对中断处理进行线程化可以提高Linux内核实时性. 三介 ...

  4. 详解vue的diff算法

    前言 我的目标是写一个非常详细的关于diff的干货,所以本文有点长.也会用到大量的图片以及代码举例,目的让看这篇文章的朋友一定弄明白diff的边边角角. 先来了解几个点... 1. 当数据发生变化时, ...

  5. 好代码是管出来的——Git的分支工作流与Pull Request

    上一篇文章介绍了常用的版本控制工具以及git的基本用法,从基本用法来看git与其它的版本控制工具好像区别不大,都是对代码新增.提交进行管理,可以查看提交历史.代码差异等功能.但实际上git有一个重量级 ...

  6. 【Troywar love Maths】——莫比乌斯反演

    2816. Troywar loves Maths ★★☆   输入文件:Troy_1.in   输出文件:Troy_1.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述 ...

  7. 【构造】Bzoj1432[ZJOI2009]Function

    Description Input 一行两个整数n; k. Output 一行一个整数,表示n 个函数第k 层最少能由多少段组成. Sample Input 1 1 Sample Output 1   ...

  8. 【二分贪心】Bzoj3969 [WF2013] Low Power

    Description 有n个机器,每个机器有2个芯片,每个芯片可以放k个电池. 每个芯片能量是k个电池的能量的最小值. 两个芯片的能量之差越小,这个机器就工作的越好. 现在有2nk个电池,已知它们的 ...

  9. BZOJ_1803_Spoj1487 Query on a tree III_主席树+dfs序

    BZOJ_1803_Spoj1487 Query on a tree III_主席树 Description You are given a node-labeled rooted tree with ...

  10. 哎呀,我老大写Bug啦——记一次MessageQueue的优化

    MessageQueue,顾名思义消息队列,在系统开发中也是用的比较多的一个中间件吧.我们这里主要用它来做日志管理和订单管理的,记得老老大(恩,是的,就是老老大,因为他已经跳槽了)还在的时候,当时也是 ...