目录

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)—入门介绍、数据类型

 

相关文章: