Redis(2)—入门介绍、数据类型

目录

1.Redis是什么?

2.Redis能干嘛?

3.Redis下载、安装和测试

(1)下载

(2)安装

(3)测试

(4)关闭服务器

4.Redis启动后杂项基础知识

5.Redis的数据类型

(1)String

1)常用

2)案例

(2)List

1)常用

2)案例

3)总结

(3)Hash

1)常用

2)案例

(4)Set

1)常用

2)案例

(5)Zset

1)常用

2)案例

(6)Key的常用命令

1)常用

2)案例


1.Redis是什么?

Redis:REmote DIctionary Server(远程字典服务器)

是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,也被称为数据结构服务器

Redis与其他key-value缓存产品有以下三个特点:

  • 1.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
  • 2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
  • 3.支持数据的备份,即master-slave模式的数据备份

2.Redis能干嘛?

  • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
  • 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
  • 模拟类似于HttpSession这种需要设定过期时间的功能
  • 发布、订阅消息系统
  • 定时器、计数器

3.Redis下载、安装和测试

(1)下载

下载redis,放到Linux目录/opt下

下载地址:http://redis.cn/download.html

(2)安装

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

最终如下:

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

(3)测试

Redis(2)—入门介绍、数据类型

默认阻塞,再开一个终端

Redis(2)—入门介绍、数据类型

也可以使用如下方式将redis以守护进程方式运行:

新建一个文件夹myredis

Redis(2)—入门介绍、数据类型

备份redis的配置文件redis.conf到文件夹/myredis

Redis(2)—入门介绍、数据类型

编辑我们备份的该配置文件redis.conf

Redis(2)—入门介绍、数据类型

修改守护进程项为yes

Redis(2)—入门介绍、数据类型

查看可以执行的命令

Redis(2)—入门介绍、数据类型

将上述daemonize设置完之后我们就可以,以后台方式启动redis

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

(4)关闭服务器

在客户端敲shutdown(有条件限制,必须通过客户端连接到了服务器上面)

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

4.Redis启动后杂项基础知识

  • (1)单进程

单进程模型来处理客户端的请求,对读写等事件的响应是通过对epoll函数的包装来做到的,Redis的实际处理速度完全依靠主进程的执行效率

Epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/epoll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率

  • (2)默认16个数据库

Redis默认有16个数据库,类似于数组下标,从0开始,初始默认使用0号库

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

  • (3)使用select命令切换数据库

Redis(2)—入门介绍、数据类型

  • (4)dbsize查看当前库中有多少key

Redis(2)—入门介绍、数据类型

  • (5)flushdb和flushall

flushdb:清空当前库

flushall:清空所有库

  • (6)统一密码管理:16个库同样的密码,要么都OK要么一个也连接不上

  • (7)redis索引都是从0开始
  • (8)默认端口:6379

5.Redis的数据类型

常用5个数据类型:

  • String(字符串)
  • Hash(哈希,类似于java中的Map)
  • List(列表)
  • Set(集合)
  • Zset(sorted set:有序集合)

(1)String

单值单value

Redis(2)—入门介绍、数据类型

string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value

string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象

一个redis中字符串value最多可以是512M

1)常用

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

2)案例

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

注意:redis的回应为1表示执行成功,为0表示执行不成功

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

(2)List

单值多value

Redis(2)—入门介绍、数据类型

List是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或尾部(右边),它的底层实际是个链表

1)常用

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

2)案例

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

3)总结

  • List是一个字符串链表,left、right都可以插入添加
  • 如果键不存在,创建新的链表
  • 如果键已存在,新增内容
  • 如果值全移除,对应的键也就消失了
  • 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就比较低了

(3)Hash

单值多value且value为键值对

Redis(2)—入门介绍、数据类型

Hash是一个键值对集合,是一个string类型的field和value的映射表,hash特别适合用于存储对象,类似于java中的Map<String,Object>

1)常用

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

2)案例

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

(4)Set

单值多value且value不会重复

Redis(2)—入门介绍、数据类型

Set是String类型的无序集合,通过HashTable实现,

1)常用

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

2)案例

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

(5)Zset

和set一样也是string类型元素的集合,且不允许重复的成员

不同的是每个元素都会关联一个double类型的分数,redis通过分数为集合中的成员进行从小到大的排序。

  • set:k1 v1 k2 v2
  • zset:k1 score1 v1 k2 score2 v2

Redis(2)—入门介绍、数据类型

zset的成员是唯一的,但分数却可以重复

1)常用

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

2)案例

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

(6)Key的常用命令

1)常用

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

2)案例

注意:在输入命令的时候可以使用TAB键自动补全,默认会补全为大写

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型

Redis(2)—入门介绍、数据类型