redis 使用技巧

Redis 使用的 10 个小技巧 Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。 随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。 下面我们将探索正确使用 Redis 的10个技巧。 1、停止使用 KEYS * Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点... 阅读详情

1.我在项目中使用redis不会缓存对象,而是存;因为频繁的序列化和反序列化会占用cpu,所以我们;

2.KEY的设计就是字符串拼接的形式:;比如[user]::[id]::[act];

3.redis缓存服务器笔记;redis是一个高性能的key-value存储系;但是由于他是一个内存内存系统,这些数据还是要存储;

4.作为缓存框架:;create/updae

因为频繁的序列化和反序列化会占用cpu,所以我们这样使用可以降低redis服务对CPU的要求。一般部署redis的主机都是内存比较空闲的主机,而把解析json这部分工作移到应用内部,应用所在主机的CPU配置必然是高的。这样可以有效的利用主机资源。1. 我在项目中使用redis不会缓存对象,而是存储jso(Google Protocol Buffer)字符串。

2. KEY的设计就是字符串拼接的形式:

比如[user]::[id]::[act]。

3.

redis缓存服务器笔记

redis是一个高性能的key-value存储系统,能够作为缓存框架和队列

但是由于他是一个内存内存系统,这些数据还是要存储到数据库中的

4. 作为缓存框架:

create/updae/delete---同时存到redis和数据库

query--先从redis查,没有记录才从数据库查,并把从数据库查的结果也放一份到redis

5. 作为缓存队列:

把对象Object存储到redis中,怎么存?memcache存取对象是序列化和反序列化 使用通用的序列化、反序列化(频繁的会很消耗cpu,使用Google Protocol Buffer,将对象打成二进制流)或者使用json存储(阿里巴巴的fast-json)

6. java使用redis的客户端一般是:jedis

jedis的原生接口只支持基本数据类型和String、byte[]

7. 我对redis队列的理解:

重要的数据:先存到数据库,然后存到redis

要求响应速度很高的的数据:先写缓存,然后通过消息队列再写入数据库

因为Redis的value支持String、list、set、zset

那么就可以把redis的list当作队列来用

入队:lpush mylist 'hello1'

出队:lpop mylist

8. 其提供AOF(追加式操作记录文件)和DUMP(定期数据备份)两种持久化方式

9. VM(虚拟内存机制):如果有1万条数据保存到内存中,那么我就要配置能存储这么多

数据的内存然后这1万条数据有9000条不是活跃数据,那就白白浪费了,可以这样做,当数据容量超过内存时,将部分value存储到文件中memcached是把数据完全存储

到内存中,而redis是大部分的,因为他支持自定义的VM同时Redis支持主从复制机制

10. 数据库缓存

Redis提供了较为丰富数据类型,使我们可以更为容易地将数据对象缓存起来(序列化、protobuffer)。

当需要请求某一数据时,先从Redis中查找,如果没有再查数据库,同时交给Redis缓存起来。

当对数据进行修改时,则先将修改后的数据保存到Redis,然后保存至数据库(2)。 第2步可以有另外的思路:

A不实时保存到数据库,而是交由另外的线程(甚至是专门的程序)去保存,以提高逻辑层的响应速度。

B部分数据交给Redis保存(Reids自身有持久化功能),像玩家已经完成过的任务ID集合,利用Redis的Set类型保存更为合适。

C玩家瞬时变化的数据不见得每次修改都需要保存(比如金钱、经验),但如果游戏服务器自己维护在内存中,出现宕机就会导致回档。

Redis是独立于游戏服务器的,交由它来保存,可以防止宕机回档的问题,也可以减少游戏服务器自己维护数据所占用的内存。 11. 三、缓存更新规则

时间过期+规则过期: 上面基于时间过期的更新策略,在过期时间内,将一直从缓存读取数据;在过期

之后,则需要重新从数据库加载数据到缓存。这种策略的问题是大并发访问时,容易造成数据库瞬间高并发读。解决的办法是添加“基于规则过期”的更新策略。

添加规则过期的策略之后,当从缓存拿到数据后,首先检查该数据离设定的过期时间是否小于一定的值,如果小于一定值,则读取数据库更新缓存,进行提前更新,从一定程度上避免了大并发访问时,数据库瞬间高并发读;当从缓存读取不到数据时,从数据库读取,并更新缓存。 以上更新策略,在缓存数据过期后才读取的时候,仍有可能造成数据库瞬间高并发读。

12.应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql。

同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis

主键。

这样处理,主要是实时读写redis,而mysql数据则通过队列异步处理,缓解mysql压力,不过这种方法应用场景主要基于高并发。

13.

1 Mysql更新Redis

Mysql更新Redis借鉴memcache与mysql通信,利用mysql udf,每有更新操作触发更新redis操作。不足在高并发时mysql压力较大,且针对每张表均需增删改触发,且Redis服务器不好更换(不知道有没有方法)。

2 Redis更新Mysql

最简单的就是读redis->写mysql.但是在高并发下,这样就不太适合了,因此考虑利用消息队列每隔的固定时间更新Mysql。

但是数据中主键为自增时,目前想法如下:

第一,Redis采用tempId为key,id为空,通过mysql udf重写数据到缓存如 ,清空缓存临时数据。

第二,redis key值不采用Id,采用字段uuid,再通过mysql udf 同步redis缓存 id。 第三,Redis读取Mysql表最新自增键Id值,Redis传递id。

Redis更新Mysql需注意,Redis在系统中的定位,作缓存服务器时,需规划存储哪些数据,保存多长时间等等。

Redis系列之实现分布式自增主键 使用Redis来实现分布式的主键自增主要是依赖于Redis的INCR命令,调用INCR命令的对应key,其数值是实现递增加一,所以利用这个性质,将redis独立部署起来就可以实现分布式环境的自增ID,如图,使用INCR命令的例子 阅读详情

相关推荐

银河麒麟(桌面版/服务器版)远程桌面配置全攻略:XRDP与VNC实战指南

本文提供了银河麒麟操作系统(桌面版与服务器版)配置远程桌面的完整实战指南。详细对比并演示了XRDP与VNC两种主流方案的安装、配置与连接步骤,涵盖从环境准备、软件安装、服务启动到客户端连接的全过程,并针对常见的黑屏、连接失败等问题给出了有效的排坑解决方案,帮助用户实现跨平台的便捷图形化远程管理。

b0c1d2的博客 814

【java工具类】Redis怎么实现生成主键ID生成唯一的ID,怎么基于Redis 实现分布式全局id原理实现java代码使用Redis生成数值类型主键

基于Redis 实现分布式全局id原理 import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.support.atomic.

java技术专家全栈成长之路 2074

减小伺服电机共振的方法(以松下伺服为例)

嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保..

在下小黄的博客 1万+

Redis学习笔记2

个人博客 欢迎访问个人博客: https://www.crystalblog.xyz/ 备用地址: https://wang-qz.gitee.io/crystal-blog/ 1. Redis入门 1.1 Redis简介 B站视频: https://www.bilibili.com/video/BV1CJ411m7Gc?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click 1.1.1 Redis引入 2007年1

学习技术的路上不断沉淀自己 3806

GPU八卡A100使用INT4-W4A16量化大模型实验

本实验旨在探索在环境下,对大语言模型进行权重量化的可行性、效率与性能影响。通过采用工具集成 GPTQ 算法,实现对所有线性层的权重量化(W4A16 方案最终通过lm-eval工具在GSM8K任务上对压缩模型进行评估。

goodgood_UP的博客 1909

最新测算源码PHP算命源码-风水八字-八字起名-塔罗牌占卜

未来,随着技术的发展和用户需求的变化,我们可以继续对系统进行升级和优化,以满足更多用户的需求和期望。数据库设计:创建一个名为bazi的数据库表,包含以下字段:id(自增ID)、name(姓名)、sex(性别)、birth_date(出生日期)、birth_time(出生时间)、bazi(八字结果)。数据库设计:创建一个包含塔罗牌信息的数据库表,如tarot_cards,包含字段:id(塔罗牌ID)、name(塔罗牌名称)、meaning(塔罗牌含义)等。根据操作系统的不同,PHP的安装方法会有所不同。

shanbeizi的博客 2420

Redis生成唯一主键

title toc layout categories tags date Redis生成唯一主键 true blog blog Java Blog 2019-04-24 02:11:17 -0700 使用Redis生成自定义...

Jerry 1572

M2DGR数据集在主流SLAM框架中的实战配置指南:从ORB-SLAM到FAST-LIO的完整流程

本文提供了M2DGR多传感器数据集在主流SLAM框架中的实战配置指南。详细介绍了从ORB-SLAM、VINS-Mono等视觉/视觉惯性框架,到A-LOAM、FAST-LIO等激光/激光惯性框架的完整配置流程、参数调整要点及常见问题解决方案。通过实际测试对比,分析了各算法在M2DGR数据集上的表现,为机器人定位与建图研究提供了宝贵的实战经验。

k9l0m1的博客 481

Redis生成主键的优点及与其他生成主键方式的对比

使用Redis生成主键的优点及与其他生成主键方式的对比Redis生成ID 当使用数据库来生成ID性能不够要求的时候,我们可以尝试使用Redis来生成ID。这主要依赖于Redis是单线程的,所以也可以用生成全局唯一的ID。可以用Redis的原子操作 INCR和INCRBY来实现。 可以使用Redis集群来获取更高的吞吐量。假如一个集群中有5台Redis。可以初始化每台Redis的值分别是1,2,3...

精益求精 3109

从零到一:基于PX4+Gazebo+ROS2的无人机轨迹跟踪仿真环境全栈搭建

本文详细介绍了在Ubuntu 22.04系统上,从零开始搭建基于PX4、Gazebo Garden和ROS2 Humble的无人机轨迹跟踪仿真环境的完整流程。内容涵盖PX4 SITL编译、Gazebo安装、ROS2配置、Micro XRCE-DDS Agent通信桥接以及QGroundControl地面站部署,并提供了创建自定义ROS2节点实现圆形轨迹跟踪的实战代码与关键调试技巧,帮助开发者快速构建全栈仿真开发环境。

swift5iosmith的博客 919

Unity AssetBundle解包实战指南:从工具使用到编程解析

在游戏开发与资源管理中,资源打包与加载是核心技术环节。AssetBundle作为Unity引擎官方推荐的资源分发方案,其本质是一个包含头部信息、目录表、数据区及依赖关系的结构化文件系统,通过序列化机制将游戏资源转换为二进制格式。理解AssetBundle的机制对于实现高效的热更新、减少资源冗余、优化加载性能具有重要价值,广泛应用于游戏开发、竞品分析、技术研究等场景。本文聚焦AssetBundle解包这一实践需求,系统介绍如何利用AssetStudio、UABE等主流工具进行资源提取与可视化分析,并深入探讨通

weixin_28192383的博客 347

Redis正确使用的十个技巧

前面讲到Redis的一些数据类型和基本使用,今天我们主要根据资料总结一下关于redis使用过程的十个技巧: 1.停止使用KEYS*  很多时候当我们关注一个redis实例的统计数据,我们会快速的输入"KEYS*"命令,这样key的信息会很明显地展示出来。从程序化的 角度出发往往倾向于写出下面这样的伪代码: for key in 'keys * ': doAllTheThings();

DannyIsCoder的博客 3381

智能测试策略优化:平衡覆盖率、时间和资源

在软件开发过程中,测试是确保软件质量的关键环节。然而,测试工作往往面临着诸多挑战,其中如何在保证测试覆盖率的前提下,合理分配时间和资源是一个核心问题。本文章的目的在于探讨智能测试策略的优化方法,帮助软件测试团队在有限的时间和资源条件下,实现尽可能高的测试覆盖率。文章的范围涵盖了智能测试策略的核心概念、算法原理、数学模型、实际应用案例以及相关工具和资源等方面。本文将按照以下结构进行组织:首先介绍智能测试策略优化的背景和相关概念,包括核心术语和缩略词的定义;

AIGC应用创新大全的博客 620

Redis 使用技巧

Redis 现在非常受欢迎,似乎已经成为内存数据存储行业的标准。本人结合平时使用Redis经验,也同时查找了一些网上别人的总结经验,总结以下几条Redis使用技巧。 1. 停止使用 KEYS 众所周知,key指令可以很方便的读取数据,但是随着redis中key数量的增多,当key数量越大,keys 命令执行越慢,关键是这会阻塞服务器,对单线程的redis来说,简直是就是灾难。用替代命令scan代替: for key in'keys *': doAllTheThings() 但是当你有1300万个key

程序猿广哥 350

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Redis使用技巧

前言 Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。 下面我们将探索正确使用 Redis 的10个技巧。 1、停止使用 KEYS * Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点。很多时...

weixin_43893935的博客 233

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

redis使用技巧

1、redis使用技巧:用好redis要充分了解其工作原理,不要把它当成一个透明的盒子。 (1)key设计,以“:”作为分割符,加上服务简称,例如:服务简称(不超过5个字符):实际key 总体key不易太长 (2)必须使用连接池;要么不用redis要么就全程连接池,否则会有3-5倍的差异 (3)架构上的三级存储:程序内部缓存,redis缓存(第三方独立缓存),数据库,数据仓库(历史数据) ...

逍遥子曰: 1089

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Redis 使用的 10 个小技巧Redis

在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。下面我们将探索正确使用 Redis 的10个技巧。 1、停止使用 KEYS *Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点。很多时候当我们关注一个red...

weixin_44545088的博客 248

Redis的十个使用技巧

Redis的十个使用技巧

qq_41490913的博客 94

redis使用_Redis的十个使用技巧

点击上方Java老铁,并选择设为星标优质文章和资料会及时送达Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。1、停止使用 KEYS *Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点。很多时候当我们关注一个redis实例的统计数据, 我们会快速...

weixin_39981624的博客 80

redis集群scan_Redis 使用的 10 个小技巧

Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。下面我们将探索正确使用 Redis 的10个技巧。1、停止使用 KEYS *Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点。很多时候当我们关注...

weixin_28965739的博客 135

关于redis说法正确的是_10个Redis使用技巧

前言:Redis 在当前的技术社区里是非常热门的。从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路。随之而来的一系列最佳实践,使得大多数人可以正确地使用 Redis。Linux后台开发Redis值得我们研究技术点Redis源码缓存RedisRedis集群文尾推荐Redis的视频教程,需要的关注 。私信:1 领取下面我们将探索正确使用 Red...

weixin_39624980的博客 909
上一篇: 使用Redis之前5个必须了解的事情
下一篇: redis中各种数据类型对应的jedis操作命令
codepython
博客等级 码龄20年 125粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值