- 注意: 撰写本文目的主要是为了给自己做一个备忘录,如果你学过Redis并且希望从本文中找到一些忘记的知识点,那么你可以阅读本文章。由于文章内讲解并不是很多,因此此文章并不适合小白入门使用。
Redis基础知识
Redis:
**RE
**mote **DI
**ctionary **S
**erver(远程字典服务器)
- Redis是什么?
- 是完全开源免费的,用C语言编写,遵守BSD协议。
- 是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的**
NoSQL
数据库,是当前最热门的NoSQL数据库之一
**,也被人们称为数据结构服务器。
-
Redis能干什么?
1.内存存储和持久化:Redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务取最新N个数据的操作。如:可以将最新的10条评论的ID放在Redis的List集合里面。
2.模拟类似于HttpSession这种需要设定过期时间的功能。
3.发布、订阅消息系统。消息队列、排行榜、定时器、计数器。
4.发布、订阅消息系统。 -
Redis去哪下载
Redis中文网 -
Redis怎么玩?
1.数据类型、基本操作和配置
2.持久化和复制,RDB/AOF
3.事务的控制
4.复制
5… -
最后让我们来看一看我们需要了解多少东西
- 注:图片引用自掘金文章Redis闲谈,如有侵权,请联系博主删除。
Redis使用
1.Redis安装
在此不介绍安装Redis相关知识,具体步骤请读者自行百度查找。(建议使用Linux环境)。博主在Redis基础教程系列中所使用的系统环境是ubantu18.04
2.相关知识
- Redis默认设有16个库
- Redis索引都是从0开始
- Redis默认端口是6379
3.基础操作
通过命令行客户端访问Redis
redis-cli
性能测试
redis-benchmark
切换库
select x # x是指要切换到的库的id
查看库中key的数量
dbsize
查看库中所有的key-value
keys *
模糊查询
# 查询'k1','k2','k3'
keys key?
清空库中数据
flushdb
4.Redis五大数据类型
- Redis键(key)
- Redis字符串(String)
- Redis列表(List)
- Redis集合(Set)
- Redis哈希(Hash)
- Redis有序集合Zset(sorted set)
String(字符串)
- String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
- String类型是二进制安全的。意思是Redis的String可以包含任何数据。比如jpg图片或者序列化的对象。
- String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。
Hash(哈希)
- Redis hash是一个键值对集合。
- Redis hash是一个String类型的field和value的映射表,hash特别适合用于存储对象。
- 类似于Java里面的Map<String,Object>
List(列表)
- Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个链表
Set(集合)
- Redis的Set是String类型的无序集合。它是通过HashTable实现的。
Zset(sorted set : 有序集合)
- Redis Zset和Set一样也是String类型元素的集合,且不允许有重复的成员。
- 不同的是每个元素都会关联一个double类型的分数
- Redis正是通过分数来为集合中的成员进行从小到达的排序。Zset的成员是唯一的,但分数(score)却可以重复。
5.配置文件
常用配置参数:
- 1.Redis默认不是以守护进程的方式运行,可以通过配置项修改,使用yes启用守线程:
daemonize no
- 2.当Redis以守护线程方式运行时,Redis默认会把pid写入**/var/run/redis.pid**文件,可以通过pidfile指定:
pidfile /var/run/redis.pid
- 3.指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379是手机按键上MERZ对用的号码,而MERZ取自意大利歌女Alessia Merz的名字:
port 6379
- 4.绑定的主机地址
bind 127.0.0.1
- 5.当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能:
timeout 300
- 6.指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为varbose:
loglevel varbose
- 7.日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置日志记录方式为标准输出,则日志将会发送给**/dev/null**:
logfile stdout