Redis开发与运维

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 常用命令redis-server启动redisredis-server /opt/redis/redis.conf    配置启动redis-server --port 6379 --dir /usr/local/data(存放持久化文件和日志文件的目录)   按照参数启动其他配置默认r...

常用命令

redis-server启动redis
redis-server /opt/redis/redis.conf    配置启动
redis-server --port 6379 --dir /usr/local/data(存放持久化文件和日志文件的目录)   按照参数启动其他配置默认
redis-cli命令行客户端
redis-cli -v  查看redis的版本信息
redis-cli -h {host} -p {port}   交互式方式连接
redis-cli -h {host} -p {port} {command}  命令方式连接
redis-cli shutdown optional{nosave|save}  停止redis服务 是否生成持久化文件
命令:发送命令(网络时间)  执行命令(redis命令时间)  返回结果(网络时间)
keys *  所有键  遍历所有键 大量键下禁止使用
dbsize  键总数 直接获取内置的键总数变量
exists key 键是否存在
del key...    删除键
expire key seconds  键过期
ttl key  键的剩余过期时间  -1没设置过过期时间  -2键不存在
type key 键的数据类型  不存在->none
object encoding key 查看内部编码类型
String
set key value [ex second] [px millisecond] [nx(键必须不存在)|xx(必须存在)]
setex key seconds value
setnx key value
get key
mset k1 v1 k2 v2
mget k1 k2 k3
Hash
hset key field value
hsetnx key field value
hget key field
hdel key field ...
hlen key
hmget key f1 f2
hmset key f1 v1 f2 v2
hexists key field
hkeys key  获取所有的field
hvals key  获取所有的值
hgetall key 获取所有的field和值
List(索引下标有序,时间轴,消息队列)
rpush|lpush key v1 v2
lrange key start end
linsert key before|after pivot value 在pivot前后插入value
lindex key index
llen key
lpop|rpop key  左|右侧弹出元素(删除)
lrem key count value   删除指定元素  count  >0从左向右删除最多count个value元素  =0删除所有
ltrim key start end  相当于substring的用法
lset key index newValue
blpop|brpop key1 key2 ... timeout 阻塞命令
Set(标签,社交)
sadd key element1 element2 ...
srem key e1 e2 ...
scard key  计算元素个数
sismember key v 判断元素是否在集合中
srandmember key count 随机从集合中返回指定个数元素
spop key 随机弹出一个元素(删除)
smembers key 获取所有元素
sinter k1 k2  多个集合的交集
suinon k1 k2 多个集合的并集
sdiff k1 k2 多个集合的差集
sinterstore destination k1 k2  将k1 k2交集保存到destination中
sunionstore destination k1 k2 
sdiffstore destination k1 k2
SortSet(分值有序,排行榜,社交)
zdd key score member [score member ...] 
zcard key
zscore key member
zrank key member  计算成员到排名位置
zrevrank key member
zrem key m1 m2 ..
zincrby key value member 给member的score增加value分
zrange key start end [withscores] 从高到低返回
zrevrange key start end
zrangebyscore key min max [withscores] [limit offset count] 从指定范围返回
zcount key min max
zremrangebyrank key start end   删除指定排名内到升序元素
zremrangebyscore key min max
zinterstore destination numkeys key .... [weights weight...] [aggregate sum|min|max]
destination:交集计算结果保存到这个键
numkeys:需要做交集计算键到个数
weights:每个键到权重,在做交集计算时,每个键中到每个member 会将自己到分数乘以这个权重值
aggregate:计算成员交集后,分值按照sum|min|max做汇总,默认sum
zunionstore destination numkeys key ... [weights weight ...] [aggreate sum|min|max]
慢查询
config set sowlog-log-lower-than 20000    超过20秒记录
config set slowlog-max-len 1000   日志队列记录最长1000
config rewrite  配置持久化到本地配置文件
slowlog get [n]  获取n条日志记录
slowlog len  日志队列长度
slowlog reset  清空慢查询日志
事务
watch 事务期间监控某个值不变才能正确提交
multi  开始
exec  提交  
LUA脚本
redis-benchmark  redis基准测试工具
redis-benchmark -c 100 -n 20000  -t get,set -q --csv  100个客户端同时向redis发送get,set请求,共执行20000次。-q只输出每秒响应请求数据量并导出到csv
持久化RDB(紧凑压缩的二进制文件)
手动触发 :1.save(阻塞当前redis服务器)  2.bgsave(执行fork操作创建子进程)
自动触发:1.使用save m n配置 2.执行全量复制 3.执行debug reload 4.执行shutdown
持久化AOF(append only file)以独立日志的方式记录每次写命令
append, sync, rewrite, load
命令写入-> append-> AOF缓存-> sync-> AOP文件rewrite<- 重启load
redis-check-aof --fix 修复损坏的aof文件    diff -u 比较文件不同  
redis-check-dump 持久化文件检测和修复工具
redis-sentinel 启动redis-sentinel
配置文件中的  sentinel monitor mymaster 127.0.0.1 6379 2   代表sentinel节点需要监控mymaster这个主节点,2代表判断主节点失败至少需要2个sentinel节点同意
redis-sentinel /opt/redis/redis-sentinel-26379.conf 
 
 
 
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
27天前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
5天前
|
NoSQL 关系型数据库 MySQL
开发者福音:用IDEA和Iedis2加速Redis开发与调试
开发者福音:用IDEA和Iedis2加速Redis开发与调试
16 0
开发者福音:用IDEA和Iedis2加速Redis开发与调试
|
7天前
|
运维 NoSQL 算法
Java开发-深入理解Redis Cluster的工作原理
综上所述,Redis Cluster通过数据分片、节点发现、主从复制、数据迁移、故障检测和客户端路由等机制,实现了一个分布式的、高可用的Redis解决方案。它允许数据分布在多个节点上,提供了自动故障转移和读写分离的功能,适用于需要大规模、高性能、高可用性的应用场景。
15 0
|
27天前
|
人工智能 JSON 运维
AI大模型运维开发探索第三篇:深入浅出运维智能体
大模型出现伊始,我们就在SREWorks开源社区征集相关的实验案例。玦离同学提供了面向大数据HDFS集群的智能体案例,非常好地完成了运维诊断的目标。于是基于这一系列的实验和探索。本文详细介绍智能体在运维诊断中的应用探索。
|
2月前
|
Kubernetes Linux 开发工具
容器开发运维人员的 Linux 操作机配置优化建议
容器开发运维人员的 Linux 操作机配置优化建议
|
3月前
|
消息中间件 存储 NoSQL
Redis开发最佳实践
Redis开发最佳实践
62 0
|
3月前
|
NoSQL 关系型数据库 MySQL
mysql与redis在java开发过程中的数据一致性问题
mysql与redis在java开发过程中的数据一致性问题
41 4
|
4月前
|
缓存 NoSQL Java
SSM之spring注解式缓存redis->redis整合,redis的注解式开发及应用场景,redis的击穿穿透雪崩
SSM之spring注解式缓存redis->redis整合,redis的注解式开发及应用场景,redis的击穿穿透雪崩
48 0
|
4月前
|
缓存 NoSQL Java
Redis-----SSM整合redis及redis的注解式开发以及redis的击穿,穿透,雪崩三种解决方案
Redis-----SSM整合redis及redis的注解式开发以及redis的击穿,穿透,雪崩三种解决方案
38 1
|
6月前
|
存储 运维 DataWorks
DataWorks是阿里云推出的一款云数据集成、数据开发、数据运维一体化的数据开发平台
DataWorks是阿里云推出的一款云数据集成、数据开发、数据运维一体化的数据开发平台
124 4