目录
1.简介
Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构[存放的数据类型],例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。
特点:
1.Redis读取的速度是110000次/s,写的速度是81000次/s。 2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合) 4.持久化,默认在内存中进行计算。可以持久化到磁盘。
主从复制(集群) 5.官方不支持window系统,但是又第三方版本。 linux系统。
用途:缓存,数据库,消息中间件
NOSQL(Not Only Sql) ,非关系型数据库(key value)关系型数据库的补充
应用场景:缓存,任务队列,消息队列,分布式队列
NOSQL和RDBMS的区别
RDBMS --关系型数据库
高度组织化结构化数据。 --表结构 列 列....
结构化查询语言(SQL) sql语句
数据和关系都存储在单独的表中。
数据操纵语言DML,数据定义语言DDL
严格的一致性. ACID 原子性 隔离性 持久性 一致性
基于事务----都支持事务
NoSQL
代表着不仅仅是SQL
没有声明性查询语言
键 - 值对存储。
非结构化和不可预知的数据 字符串 集合 对象 队列
高性能,高可用性和可伸缩性。 ----便于搭建集群---挂载
NOSQL的产品
redis----结构基于key和value的形式 mongodb---介于关系型数据库和非关系数据库之间
2.启动与停止
Windows
下载 解压
启动:双击 redis-server.exe
停止:Ctrl+C
Linux
(1) 官网下载 .tar.gz文件
(2) 拖入linux 解压
这里放入了 /usr/local文件夹下
tar -zxvf xxx.tar.gz
(3) 进入到解压目录编译并安装
make 编译
make install 安装
(4) 启动redis
redis-server redis.conf //配置文件所在的路径
2.1Redis客户端连接Redis服务器
redis-cli 连接本地服务
redis-cli -h 192.168.1.35 -p 6379
-h:redis服务器主机的ip
-p:redis服务器的端口号
测试:
2.2Redis的配置文件
redis.conf配置文件说明
| 配置项名称 | 配置项值范围 | 说明 |
|---|---|---|
| daemonize | yes、no | yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行 |
| port | 指定 Redis 监听端口,默认端口为 6379 | |
| bind | 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。 | |
| protected-mode | yes 、no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。 |
| timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 |
| loglevel | debug、verbose、notice、warning | 日志级别,默认为 notice |
| databases | 16 | 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到 |
| rdbcompression | yes、no | 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。 |
| dbfilename | dump.rdb | 指定本地数据库文件名,默认值为 dump.rdb |
| dir | 指定本地数据库存放目录 | |
| requirepass | 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭 | |
| maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。 |
| maxmemory | XXX <bytes> | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。 |
(1) 开启后台启动
![]()
(2) 设置Redis远程连接

验证

2.3安装redis的客户端的UI软件
等价于Navicat
3.数据类型·常用命令
Redis存储的是key-value结构的数据,其中key是字符串类型,value有五种常用的数据类型:
-
字符串 string 一般存放字符串
-
set key value 设置指定key的值
-
mset key value key value 设置多个key-value
-
mget key key 获取多个key的值
-
get key 获取指定key的值
-
setex key seconds value 设置指定key的值,并将key的过期时间设定为seconds秒
-
setnx key value 只有在key不存在时设置key的值
-
incr value为数字,加1 :点赞
-
decr value为数字,减1
-
-
哈希 hash 一般存放对象数据
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象,常用命令:-
hset key field value 将哈希表key中的字段field的值设为value
-
hget key field 获取存储在哈希表中的指定字段
-
hdel key field 删除存储在哈希表中的指定字段
-
hkeys key 获取哈希表中所有字段
-
hvals key 获取哈希表中所有值
-
hgetall key 获取在哈希表中指定key的所有字段和值
-
-
列表 list

Redis 列表是简单的字符串列表,按照插入顺序排序,常用命令:
-
lpush key value1 [value2] 将一个或多个值插入到列表头部
-
lrange key start stop 获取列表指定范围内的元素
-
rpop key 移除并获取列表最后一个元素
-
lpop key 移除并获取列表第一个元素
-
llen key 获取列表长度
-
brpop key1 [key2] timeout 移除并获取列表最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
-
-
集合 set

Redis set 是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,常用命令:
-
sadd key member1 [member2] 向集合中添加一个或多个成员
-
smembers key 返回集合中的所有成员
-
scard key 获取集合的成员数
-
sinter key [key2] 返回给定所有集合的交集 :公共好友
-
sunion key1 [key2] 返回给定所有集合的并集
-
sdiff key1 [key2] 返回给定所有集合的差集(key1 - 1和2的交集)
-
srem key member1 [member2] 移除集合中一个或多个成员
-
srandmember key 随机返回一个元素
-
-
有序集合 sorted set
应用场景:排行榜

Redis sorted set 有序集合是 string 类型元素的集合,且不允许重复的成员。每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大的的排序。有序集合的成员是唯一的,但分数可以重复。常用命令:
-
zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或更新已存在成员的分数
-
zrange key start stop [withscores] 通过索引区间返回有序集合中指定区间内的成员 从小到大
-
zrevrange key start stop [withscores] 通过索引区间返回有序集合中指定区间的成员 从大到小
-
zincrby key increment member 有序集合中对指定成员的分数加上增量increment
-
zrem key member [member ...] 移除有序集合中一个或多个成员
-
-
通用命令
-
keys pattern 查找所有符合给定模式(pattern)的key-------keys *==显示所有key
-
exists key 检查给定key是否存在
-
type key 返回key所储存的值的类型
-
ttl key 返回给定key的剩余生存时间(TTL,time to live),以秒为单位
-
del key 该命令用于在key存在时删除key
-
flushdb 清除当前数据库数据
-
flushall 删除全部数据
-
expire key 为指定的key设置过期时间
-
Redis是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。它支持多种数据类型,如字符串、哈希、列表、集合等,并具有原子性操作。文章介绍了Redis的启动与停止方法,包括在Windows和Linux上的操作,以及Redis客户端的连接。此外,文章还概述了Redis的主要配置选项和常用命令,包括数据类型的增删改查操作。





被折叠的 条评论
为什么被折叠?



