本文讲述使用 PHP 以及 Redis 来设计和实现一个简单的微博。编程社区传统上认为,在开发 web 应用程序时,作为特殊目的的键值存储数据库不能用于替换关系型数据库。本文将向你展示 Redis 在键值层之上的数据结构是实现各种应用程序的有效数据模型。 在继续之前,你可以花点时间体验一下在线演示(http://retwis.redis.io,译者注),看看我们究竟要做什么。
Redis 有序集合 (Sorted sets)有序集合类似于集合和哈希的混合体的一种数据类型。像集合一样,有序集合由唯一的,不重复的字符串元素组成,在某种意义上,有序集合也就是集合。 集合中的每个元素是无序的,但有序集合中的每个元素都关联了一个浮点值,称为分数(score,这就是为什么该类型也类似于哈希,因为每一个元素都映射到一个值)。
Redis 列表(Lists)为了解释列表类型,最好先开始来点理论,因为列表这个术语在信息技术领域常常使用不当。例如,”Python Lists”,并不是字面意思(链表),实际是表示数组 (和 Ruby 中的 Array 是同一种类型)。 通常列表表示有序元素的序列:10,20,1,2,3 是一个列表。但是数组实现的列表和链表实现的列表,他们的属性非常不同。 Redis 的列表是使用链表实现的。
Redis 不是一个无格式 (plain) 的键值存储,而是一个支持各种不同类型值的数据结构服务器。这就是说,传统键值存储是关联字符串值到字符串键,但是 Redis 的值不仅仅局限于简单字符串,还可以持有更复杂的数据结构。下面列的是 Redis 支持的所有数据结构,后面将逐一介绍: 二进制安全 (binary-safe) 的字符串。
字符串 (Strings)字符串是 Redis 最基本的数据类型。Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串可以包含任意类型的数据,例如一张 JPEG 图像,或者一个序列化的 Ruby 对象。 一个字符串最大为 512M 字节。 你可以使用 Redis 的字符串类型做很多有意思的事情,例如,你可以: 使用 INCR 命令族 (INCR,DECR,INCRBY),将字符串作为原子计数器。
Redis 作为一门非关系型数据库,其复制功能和关系型数据库(MySQL)来说,功能其实都是差不多,无外乎就是实现的原理不同。Redis 的复制功能也是相对于其他的内存性数据库(memcached)所具备特有的功能。Redis 复制功能主要的作用,是集群、分片功能实现的基础;同时也是 Redis 实现高可用的一种策略,例如解决单机并发问题、数据安全性等等问题。
学习 Redis 源代码之前,我们需要对 Redis 代码的整体架构有一个了解,基于redis1.0源码,我们列出了主流程相关的如下源码文件。
Redis 教程高级篇:备份/安全/性能/Java操作/管道/分区
Redis 高性能的key-value数据库
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value非关系性数据库(NoSql)。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
Jedis-3.2.0 下载,Java 连接和操作Redis的好用工具包 。Jedis是Redis官方推荐的Java连接开发工具。
Redis-x64-4.0.2.3 官方windows 64位msi安装版。Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis是一个速度非常快的非关系型数据库(non-relational database),它可以存储键(key)与5种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘。可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。
我们关注主从复制之前,首先要考虑单机有什么问题? 机器故障 容量瓶颈 QPS瓶颈
Spring Boot 熟悉后,集成一个外部扩展是一件很容易的事,集成Redis也很简单,看下面步骤配置:
工具包Jedis支持所Redis命令,用法也非常简单。为了避免使用时每次都要连接redis,可以使用单例模式,下面介绍这种模式的编程方法。
Infinispan 和 Redis 在 OpenShift 构建基于容器 PaaS 平台的分布式缓存,它可用于了解您的应用程序是否可用以及您是否满足服务级别协议要求。首先将配置并显示相关应用程序的信息。
windows x64 Redis-3.0.504安装包下载 Redis-x64-3.0.504.msi官方镜像版,Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value非关系性数据库(NoSql)。
SpringBoot 整合 Redis、mybatis 教程(附工程源码)然后创建Controller、Mapper、Service包,在线创建方式。
关注时代Java