Redis学习笔记
什么是Redis
REmote DIctionary Server(远程字典服务器)
是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。
特点:
- 支持数据的持久化
- 支持key-value、list、set、zset、hash等数据结构的存储
- 支持数据备份,即master-salve模式的数据备份
能干什么
- 内存存储和持久化:redis支持异步将内存中数据写到硬盘上,同时不影响继续服务。
- 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
- 模拟类似与HttpSession这种需要设定过期时间的功能
- 发布、订阅消息系统
- 定时器、计数器
其他
- 单进程
- 默认16个数据库,类似数组下标从零开始,初始默认使用零号库
- select命令切换数据库
- dbsize查看当前数据库的key的数量
- flushdb:清空当前库
- flushall:清空全部库
- 统一密码管理:16个库都是同样密码,要么都OK要么一个也连接不上
- redis索引都是从零开始
- 默认端口是6379
常用五大数据类型
- String(字符串)
- 是Redis最基本的类型,一个key对应一个value;
- 是二进制安全的,即Redis的String可以包含任何数据,比如jpg图片或者序列化对象;
- 是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。
- Hash(哈希,蕾西java里的Map)
- 是一个键值对集合
- 是一个String类型的field和value的映射表,Hash特别适合用于存储对象
- 类似Java里面的Map<String,Object>
- List(列表)
- 是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部(左边)或尾部(右边)
- 底层实际是一个链表
- Set(集合)
- 是String类型的无序、无重复集合,它是通过HashTable实现的
- Zset(sorted set:有序集合)
- 和set一样也是String类型元素的集合,且不允许重复的成员
- 不同的是每个元素都会关联一个double类型的分数
- Redis通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复
Redis常见数据类型操作命令
应用场景
- 配合关系型数据库做高速缓存
- 高频次,热门访问的数据,降低数据库IO
- 分布式架构,做session共享
- 由于其拥有持久化能力,利用其多样的数据结构存储特定的数据
- 最新N个数据(通过List实现按自然时间排序的数据)
- 排行榜,Top N(利用zset(有序集合))
- 时效性的数据,比如手机验证码(Expire 过期)
- 计数器、秒杀(原子性,自增方法incr、decr)
- 去除大量数据中的重复数据(利用set集合)
- 构建队列(利用list列表)
- 发布订阅消息系统(pub/sub模式)
windows使用cmd启动Redis
widows启动
- 打开cmd,进入redis目录,其中配置文件为 redis.windows.conf ,执行如下命令
- redis-server redis.windows.conf
- 如果配置文件在其他目录下,配置文件所在路径:D:/reidsmy/redis6379.conf,执行如下命令
- redis-server D:/reidsmy/redis6379.conf
进入redis命令行
- 再打开一个cmd,进入redis目录,执行如下命令
- redis-cli.exe -h 127.0.0.1 -p 6379
- 或执行 redis-cli -p 6379
Linux启动Redis
启动
- 备份redis.conf:拷贝一份redis.conf到其他目录,如移动到 /myredis/redis.conf
- 修改redis.conf文件,将里面的daemonize no 改成 yes,让服务在后台启动
- 启动命令:执行 redis-server /myredis/redis.conf
- 打开客户端:redis-cli
- 多个端口可以: redis-cli -p 6379
- 单个端口还可以:redis-cli 或 redis-cli -p 6379
- *显示中文:redis-cli –raw 或 redis-cli -p 6379 –raw *
- 测试验证:ping
关闭服务器
单实例关闭:
- redis-cli shutdown
- 也可以进入终端后关闭
多实例关闭:
- 指定端口关闭:redis-cli -p 6379 shutdown
只关闭客户端和客户端
直接在客户端输入exit
使用Ctrl+C快捷键
Redis目录结构
- redis-benchmark
- 性能测试工具(服务启动起来后执行)
- redis-check-aof
- 修复有问题的aof文件
- redis-check-dump
- 修复有问题的dump.rdb文件
- redis-sentinel
- redis集群使用(哨兵)
- redis-server
- redis服务器启动命令
- redis-cli
- redis客户端,操作入口
最后更新: 2020年07月17日 23:39