Redis知识点:一份简洁笔记总结
Redis(Remote Dictionary Server)是一个高性能的KEY-value数据库,可以在内存中存储数据,并将数据写入磁盘,同时支持多种数据结构的存储,如字符串、列表、集合、有序集合、哈希表等,因此被广泛用作缓存、消息队列、发布/订阅系统等。
本文将对Redis的一些重要概念和使用方法进行简洁总结。
1. 数据类型
Redis支持五种基本数据类型:字符串、列表、集合、有序集合和哈希表。下面是它们的基本使用方法:
字符串:
SET key value // 设置键值对
GET key // 获取键值对
列表:
LPUSH key value1 value2 // 在左侧插入多个值
RPUSH key value1 value2 // 在右侧插入多个值
LPOP key // 弹出左侧的值
RPOP key // 弹出右侧的值
LLEN key // 获取列表长度
集合:
SADD key member1 member2 // 添加多个元素
SREM key member1 member2 // 删除多个元素
SMEMBERS key // 获取所有元素
SINTER key1 key2 // 获取两个集合的交集
有序集合:
ZADD key score1 member1 score2 member2 // 添加元素及其分数值
ZRANGE key start stop // 按分数值范围获取元素
ZRANK key member // 获取元素的排名
哈希表:
HSET key field1 value1 // 设置域的值
HSET key field2 value2
HGETALL key // 获取所有域及其值
HDEL key field1 // 删除域
2. 持久化
Redis支持两种持久化方式:RDB和AOF。RDB是将数据保存到磁盘上的快照,而AOF则是将操作日志保存到磁盘上,以便在服务重启时重新执行命令。
开启RDB持久化:
save 900 1 // 在900秒内至少有1个键被修改,则保存快照
save 300 10 // 在300秒内至少有10个键被修改,则保存快照
save 60 10000 // 在60秒内至少有10000个键被修改,则保存快照
开启AOF持久化:
appendonly yes // 开启AOF
appendfsync always // 每次写入命令时都执行同步
3. 主从复制
Redis支持主从复制,可以将一个Redis实例的数据复制到另一个实例上,实现数据的备份、读写分离等功能。具体步骤如下:
– 在主节点上配置密码并开启主从复制:
requirepass password // 设置密码
slaveof mymaster 6379 // 开启主从复制
– 在从节点上连接主节点并进行身份验证:
slaveof 127.0.0.1 6379 // 连接主节点
auth password // 进行身份验证
– 在主节点上执行写入操作,在从节点上执行读取操作,即可实现读写分离。
4. Lua脚本
Redis支持Lua脚本,可以使用它实现复杂的业务逻辑和事务操作。具体步骤如下:
– 编写Lua脚本,保存为文件:
-- 检查余额是否足够
if tonumber(redis.call('GET', KEYS[1])) >= tonumber(ARGV[1]) then
-- 扣减余额并返回结果
redis.call('DECRBY', KEYS[1], ARGV[1])
return 1
else
return 0
end
– 在Redis中加载脚本:
SCRIPT LOAD "脚本内容"
– 在Redis中执行脚本:
EVALSHA sha1 命令参数
5. 分布式锁
Redis可以通过SETNX命令实现分布式锁。具体步骤如下:
– 在客户端尝试获取锁:
SETNX my_lock 1 // 尝试将键my_lock的值设为1
– 如果返回1,则获取锁成功;否则表示锁已经被其他客户端获取。
– 在客户端释放锁:
DEL my_lock // 删除键my_lock
本文仅介绍了Redis的一部分重要概念和使用方法,更多内容请参考Redis官方文档。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
当前标题:Redis知识点一份简洁笔记总结(redis知识点笔记总结)
本文来源:http://www.mswzjz.cn/qtweb/news15/448815.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能