Redis简介
Redis是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis通常被称为数据结构服务器,因为值(value)可以是字符串(String), 哈希(Map), 列表(list), 集合(sets) 和有序集合(sorted sets)等类型。
Reids优点
(1)、异常快速 : Redis是非常快的,每秒可以执行大约110000设置操作,81000个/每秒的读取操作。
(2)、支持丰富的数据类型 : Redis支持最大多数开发人员已经知道如列表,集合,可排序集合,哈希等数据类型。这使得在应用中很容易解决的各种问题,因为我们知道哪些问题处理使用哪种数据类型更好解决。
(3)、操作都是原子的 : 所有 Redis 的操作都是原子,从而确保当两个客户同时访问 Redis 服务器得到的是更新后的值(最新值)。
(4)、多功能实用工具:Redis是一个多功能实用工具,可以在很多如:缓存,消息传递队列中使用(Redis原生支持发布/订阅),在应用程序中,如:Web应用程序会话,网站页面点击数等任何短暂的数据。
Redis缺点
(1)、单线程
(2)、耗内存
Redis安装
Redis是c语言开发的。
安装redis需要c语言的编译环境。如果没有gcc需要在线安装。Yum install gcc-c++
安装步骤:
第一步:redis的源码包上传到linux系统;
第二步:解压缩redis;
第三步:编译make;
第四步:安装make install PREFIX=/usr/local/redis
Redis使用
启动Redis
客户端连接
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set有序集合)。
String
Redis 字符串是一个字节序列。在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串。
Hash
Redis哈希是键值对的集合。 Redis哈希是字符串字段和字符串值之间的映射,所以它们用来表示对象。
在上面的例子中,哈希数据类型用于存储包含用户基本信息的用户对象。
List
Redis 列表是简单的字符串列表,通过插入顺序排序。可以添加一个元素到 Redis 列表的头部或尾部。
lpush:添加一个字符串值到LIST容器的顶部(左侧),
rpush:添加一个字符串值到LIST容器的底部(右侧)。
列表的最大长度为 232 - 1 个元素(4294967295,每个列表的元素超过四十亿)。
Set
Redis 集合是字符串的无序集合。在 Redis 可以添加,删除和测试成员存在的时间复杂度为 O(1)。
在上面的例子中 rabitmq 被添加两次,但由于它是只集合具有唯一特性。集合中的成员最大数量为 232 - 1(4294967295,每个集合有超过四十亿条记录)。
Zset
有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。
图形化界面
共16个数据库,可以配置。默认使用0号数据库。这16个库互相之间是独立的。类似于同一MySQL服务器里面的多个数据库。可以使用SELECT <dbid>命令在连接上指定数据库id。
Java客户端
Jedis:Jedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用。
使用步骤:
1、创建一个java工程
2、把jar包添加到工程中
3、创建一个Jedis对象,指定服务器的ip及端口号。
4、使用jedis操作redis数据库。
5、关闭jedis对象。
Redis常用命令
EXPIRE key seconds 设置key的生存时间(单位:秒)key在多少秒后会自动删除
TTL key 查看key生于的生存时间
PERSIST key 清除生存时间
PEXPIRE key milliseconds 生存时间设置单位为:毫秒
Redis的持久化
Rdb:快照形式。Redis所有的数据是保存在内存中。把当前时刻的数据向磁盘保存。保存到dump.rdb文件中。默认持久化方案,默认开启。
Aof:把所有对数据库操作的命令保存到一个文件中。需要手工开启。
Rdb形式
备份数据库只需要把dump.rdb备份即可。
RDB配置:
Aof形式
默认不开启。需要手工开启。可以和rdb形式同时开启。
如果同时开启会使用aof文件恢复数据。
Aof默认是每秒中保存一次数据,数据完整性较高。性能会下降。