Redis基础-基本操作命令和五大类型
什么是redis Redis即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、 Key-Value 数据库,并提供多种语言的API;redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。 为什么使用Redis Redis是一种支持key-value等多种数据结构的存储系统,是基于内存的,读写速度很快,通常用于将查询成本比较高的数据将慢介质(磁盘)存储到快介质(内存)中,达到快速响应的效果;一些频繁被访问的数据,经常被访问的数据如果放在关系型数据库,每次查询的开销都会很大,而放在redis中,因为redis 是放在内存中的可以很高效的访问。 Redis交互式安装脚本 #/bin/bash exec_dir="" function create_dir(){ mkdir -p /opt/redis/{conf,logs,pid,data} } function depandencies(){ yum install gcc make
什么是redis
Redis即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、 Key-Value 数据库,并提供多种语言的API;redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
为什么使用Redis
Redis是一种支持key-value等多种数据结构的存储系统,是基于内存的,读写速度很快,通常用于将查询成本比较高的数据将慢介质(磁盘)存储到快介质(内存)中,达到快速响应的效果;一些频繁被访问的数据,经常被访问的数据如果放在关系型数据库,每次查询的开销都会很大,而放在redis中,因为redis 是放在内存中的可以很高效的访问。
Redis交互式安装脚本
Redis基本命令
Redis启动和关闭
启动Redis
Redis客户端登入
关闭Redis server
info命令
info命令用于查看Redis的区块信息
切换库
Redis默认有16个数据库,编号从0到15,默认数据库为0号库。
使用SELECT INDEX切换数据库
删库
清空当前所在的库
清空Redis的全部数据库
Redis五大数据类型
分别是:字符串类型、列表List(链表)、集合SET、哈希HASH和Zset有序集合
字符串类型
命令
字符串类型的常见用法
把经常读取的url、字符串、音视频字符串等存储到redis内。redis作为缓存层,能够加速数据读取;同时将MySQL作为数据持久化层,降低mysql的访问压力。
视频类url一般把视频文件存储到远端CDN服务器,并将链接转存在MySQL里,在用户读取视频时,通过前端JS加密处理让用户得到一个加密后的url,无法通过此url直接获得源文件。
利用INCR/DECR实现增加点赞数、转发数等功能;
由于redis是单线程模式,命令都是有序执行的,因此能够确保数据正确性。
列表List(链表)
List相关命令
其中index为负时代表倒数的index。
常见用法
通过LPUSH向消息队列中压入订单,通过RPOP弹出最老的订单并处理
集合SET
特点
相关命令
并集:将两个集合合并为一个集合并去重
交集:两个元素共有的元素
常见用法
哈希HASH
Redis Hash是一个string类型的field和value的映射表,Hash适合存储对象
相关命令
HSET:添加键值对
HGET: 获取指定散列键的值
HMGET: 一次性查询多个key-value
HGETALL: 获取散列中包含的所有键值对
HDEL: 如果给定键存在于散列中,那么就移除这个键
HMSET: 一次性添加多个键值对
Zset有序集合
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
相关命令
ZADD: 将一个带有给定分值的成员添加到有序集合里面
ZRANGE: 根据元素在有序集合中所处的位置,从有序集合中获取多个元素(类似List列表的LRANGE)
使用WITHSCORES携带分数显示
ZREM: 如果给定元素成员存在于有序集合中,那么就移除这个元素
ZREVRANGE: 逆序显示集合元素
ZINCRBY: 为某个元素增加指定的分数(score)
ZRANK: 显示某个元素的序号
Redis安全控制
Redis作为缓存中间件,容易受到反序列化攻击,因此,如果Redis服务器要暴露在公网,必须启用安全模式,确保安全性。
开启安全模式
在配置文件中增加安全配置
登录时使用-a参数输入密码或使用redis-cli进入交互后使用auth password输入密码。
以非root用户运行redis
修改服务控制脚本
禁用危险命令
修改配置文件,使用rename-command指令关闭危险命令
其实就是将危险命令修改为复杂字符串,防止误操作。
Read Next
事件源模式和传统数据库方法在数据管理上的优劣分析
对事件源模式和传统数据库方法在应用程序性能影响、性能、扩展性和可靠性的分析;以及云原生环境下数据管理的最佳实践
关于Metrics_server在自托管环境下无法使用的问题
修复kubernetes的metrics server在自托管环境下因缺少CA证书而无法运行的问题。
关于IP、子网掩码、主机位和网络位的计算方法
如何通过子网掩码和掩码位计算一个IP地址的网络地址和可分配的主机位
交换机的工作原理 - 学习、泛洪、转发和过滤
交换机的工作原理,包括学习、泛洪、转发和过滤四个过程;如何使用MAC地址来管理网络数据流,如何通过与设备的互动来建立和更新地址表。