彻底搞懂 redis 事务-编程思维

提到redis的事务,相信很多初学的朋友会对它的理解和使用有些模糊不清,料想它和我们常见的关系型数据库(mysql 、mssql等)中的事务相同,也支持回滚,但这样理解就进入了一个误区,首先:关系型数据中的事务都是原子性的,而redis 的事务是非原子性的。再多说一句,什么是程序原子性?简单的理解就是:整个程序中的所有操作,要么全部完成,要不全部不完成,不会停留在中间某个环节。那么非原子性就是不

今天又和redis超时杠上了-编程思维

摘要:究竟是不是cpu占比高的问题导致redis超时的呢? 本文分享自华为云社区《我又和redis超时杠上了》,作者:蓝胖子的编程梦 。 背景 经过上次redis超时排查,并联系云服务商解决之后,redis超时的现象好了一阵子,但是最近又有超时现象报出,但与上次不同的是,这次超时的现象发生在业务高峰期,在简单看过服务器的各项指标以后,发现只有cpu的使用率在高峰期略高,我们是8核cpu,高峰期能

redis.conf 7.0 配置和原理全解,生产王者必备-编程思维

5.5 redis.conf 配置详解 我是 Redis, 当程序员用指令 ./redis-server /path/to/redis.conf 把我启动的时候,第一个参数必须是redis.conf 文件的路径。 这个文件很重要,就好像是你们的 DNA,它能控制我的运行情况,不同的配置会有不同的特性和人生,它掌握我的人生命运,控制着我如何完成高可用、高性能。合理的配置能让我更快、更省内存,并发挥

缓存击穿、穿透、雪崩及常用解决方案-编程思维

缓存击穿、穿透、雪崩及解决方案 Redis是一种高性能的键值型数据库,它可以用来实现缓存功能,提高应用的响应速度和承载能力。但是,使用Redis缓存也会遇到一些常见的问题,比如缓存击穿、缓存穿透、缓存雪崩。这些问题都会影响缓存的效率和稳定性,所以需要了解它们的原因和解决方案,保障Redis能够正常运行。 击穿、穿透、雪崩的意思 击穿、穿透、雪崩这三个词语很容易混淆,本文先对词语进行理解,再讲解技

记坑-redis集群模式使用lua脚本的限制-编程思维

有一种无奈叫测试环境好好的,一到线上就热烈的马,各种问题原形毕露 问题复现: ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array, and KEYS should not be in expression 堆栈信息: org.sp

如何通过python将json格式文件导入redis?-编程思维

摘要:如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务。 本文分享自华为云社区《Python将JSON格式文件导入 redis,多种方法》,作者: 梦想橡皮擦 。 在导入前需要先确定你已经安装 Redis,并且可以启动相关服务。 windows 上启动 redis 的命令是 redis-server.exe redis.windows.conf,效果图如下

redis 的bitmap byte转为bit-编程思维

bitmap 我们知道redis的bitmap本身不是一种数据结构,底层实际上依靠字符串进行存储,可以借助字符串进行位操作,由于redis的字符串最大内存位512MB,所以bitmap的bit位也是有上限的,8 * 1024 * 1024 * 512 = 2^32,由于C语言字符串的末尾都有一位分隔符,所以bitmap存储的实际上限位 2^32 - 1,所以我们可以借助bitmap来实现很多功能

redis-编程思维

简介 Redis 使用字符串对象来表示位数组,因为字符串对象使用的 SDS 数据结构是二进制安全的,所以程序可以直接使用 SDS 结构来保存位数组,并使用 SDS 结构的操作函数来处理位数组。 在 SDS 结构当中,buf 字节数组除了字符串结尾的 \0 空字符,其余的位置都存储着一个字节长的位数组,一个字节可以存储 8 位的二进制。 这里需要注意的是,在 buf 数组中存储的二进制位数组的顺序

asp.net core 上使用redis探索(3)--redis示例demo-编程思维

由于是基于.net-core平台,所以,我们最好是基于IDistributedCache接口来实现。ASP.NET-CORE下的官方redis客户端实现是基于StackExchange的。但是官方提供的IDistributeCache接口中的方法只是增删改查,我们可以继续拓展,增加订阅/发布,消息队列,当然这些方法必须是基于底层的StackExchange相对应的方法来做的。如果我们要实现自己的

redis基础、应用、第三方支持组件总结-编程思维

这段时间一直在研究学习Redis的相关知识,现在大概做下总结吧首先,Redis的基础方面,不说配置,就单单说下Redis数据类型:Redis 五大数据类型有String 类型,Hash 类型,List 类型,Set 类型,Zset(Sortedset)类型。其中常用的是前三个。String 是 redis 最基本的类型,一个key对应一个value。 hash 是一个键值对集合,和C# 的Dic

asp.net core上使用redis探索(1)-编程思维

基于Ubuntu安装redis, 我找的一个很好的网站: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04设置redis密码登录, 编辑redis.conf文件:将requirepass 后面数据改为你想要的密码。 将redis设置为远程可访问,

asp.net 分布式探讨之session共享问题-编程思维

---恢复内容开始--- Session共享是分布式架构设计中的一大难点,尽管session共享的解决方案不少,但是.net 下的解决方案还是比较少,而且说明文档也很少。 之前尝试用memcached缓存session,以解决session共享问题,后来发现实在是没有解决方案,github上有一个MemcachedSessionProvider,但是我并没有成功,还在博客园的博问上说了这个问题,

ninedata:高效高质量的 redis 可视化管理工具-编程思维

Redis 是一个内存数据结构存储系统,它被广泛用于缓存、队列、实时分析等多种应用场景中,目前已经成为 Key-value 数据存储系统中的佼佼者,根据 DB-Engine 网站提供的最新数据,Redis 在 Key-value stores 类别中排名第一,在整体数据库类别中排名第六,有着非常高的市场占有率。 随着 Redis 数据库的流行和广泛应用,Redis 的开发、管理需求日益增多,数据

redis的三种持久化策略及选取建议-编程思维

概述 Redis是一个基于内存的高性能的键值型数据库,它支持三种不同的持久化策略:RDB(快照)、AOF(追加文件)、混合。这三种策略各有优缺点,需要根据不同的场景和需求进行选择和配置。本文将介绍这三种策略 RDB(快照) 概述 RDB持久化策略是指在一定的时间间隔内,将Redis内存中的数据以二进制文件的形式保存到硬盘上。这个二进制文件就是一个快照,它记录了某个时刻Redis内存中的所有数据。

2021-01-29:redis同步机制是怎样的?-编程思维

福哥答案2021-01-30: [答案1:](https://italk.mashibing.com/question/detail/ques_00006009)全量同步master服务器会开启一个后台进程用于将redis中的数据生成一个rdb文件,与此同时,服务器会缓存所有接收到的来自客户端的写命令(包含增、删、改),当后台保存进程处理完毕后,会将该rdb文件传递给slave服务器,而slav

2021-01-31:redis集群方案不可用的情况有哪些?-编程思维

福哥答案2021-01-31:[答案来自此链接:](https://www.zhihu.com/question/442112697)一个集群模式的官方推荐最小最佳实践方案是 6 个节点,3 个 Master 3 个 Slave 的模式。 key 分槽与转发机制Redis 将键空间分为了 16384 个槽,通过以下算法确定每一个 key 的槽:CRC16(key) mod 16384由于 163

2020-07-10:sql如何调优?-编程思维

福哥答案2020-07-10:此答案来自群成员: SQL提高查询效率的几点建议 1.如果要用子查询,那就用EXISTS替代IN、用NOT EXISTS替代NOT IN。因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高。无论在哪种情况下,NOT IN都是最低效的。因为它对子查询中的表执行了一个全表遍历。 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where

2020-06-27:acid是什么?描述一下?-编程思维

福哥答案2020-06-27: 福哥口诀法:事原一隔持(事务属性ACID:原子性、一致性、隔离性、持久性) 用银行数据库来举例子解释一下这四个特性 原子性: 一个事务可能会包含多种操作,比如转账操作包括从你的账户上扣钱和对方账户加钱。虽然内部有多步操作,但是外部看来它们是一个整体,要么都成功执行,要么都不要执行。否则事务进行到一半出现问题,就可能会出现你的账户扣了钱,但是对方账户没有收到钱的问题