
redis
unwrapping
不积硅步,无以至千里
展开
-
Redis实现乐观锁
一、什么是乐观锁首先看一个问题:有一个秒杀系统,库存中的商品剩余数量为countcase1:假设用户A先抢到一件,下单,那么库存count减一,没有问题,接下来用户B又抢到一件,下单,库存count继续减一,没有问题。case2:但是一般而言,秒杀时用户非常多,所以会有这样一种情况:用户A和用户B同时抢到一件商品,同时下单,同时减库存,库存只会减一次。这就是典型的并发问题。那么如何解决这草蛋的并发问题呢?同步,一般情况下我们都是通过加锁来保证同步的锁可以分为乐观锁和悲观锁所谓悲观锁,就是原创 2020-10-29 17:15:22 · 3127 阅读 · 1 评论 -
Redis中的事务
一、什么是Redis的事务Redis官网对其事务是这样描述的:事务可以一次性地执行一组命令事务是一个单独的隔离操作:事务中的所有命令都会被序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。二、事务相关命令MULTI 开启事务,标记一个事务块的开始。EXEC 执行事务,执行所有事务块内的命令。DISCARD 取消事务,放弃执行事务块内的所有命令。WATCH 监视一个(或多个) k原创 2020-10-29 14:20:02 · 136 阅读 · 0 评论 -
Redis数据类型之Bitmaps
一、什么是Bitmaps官网描述:Bitmaps are not an actual data type, but a set of bit-oriented operations defined on the String type. Since strings are binary safe blobs and their maximum length is 512 MB, they are suitable to set up to 2^32 different bits.Bitmaps不是一原创 2020-10-28 04:39:52 · 226 阅读 · 0 评论 -
Redis数据结构之hyperloglogs
Redis数据结构之hyperloglogs一、什么是hyperloglogs和String一样,也是Redis支持的一种数据类型或者数据结构,用来做基数统计。什么是基数?比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集就是 {1, 3, 5 ,7, 8}, 基数(不重复元素的个数)为5。基数估计就是在误差可接受的范围内,快速计算基数。hyperloglogs的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。原创 2020-10-28 03:23:16 · 388 阅读 · 0 评论 -
Redis数据结构之Geospatial
一、什么是Geospatial和String一样,也是Redis支持的一种数据类型或者数据结构,用来存储和管理地理位置的二、相关命令Geospatial相关的命令有6个,下面依次梳理1. geoaddGEOADD key longitude latitude member [longitude latitude member …]将指定的地理空间位置(经度、纬度、名称)添加到指定的key中限制:有效的经度从-180度到180度;有效的纬度从-85.05112878度到85.05原创 2020-10-28 02:52:47 · 482 阅读 · 0 评论 -
Redis自带的性能测试工具redis-benchmark
一、工具位置tips: 该工具在redis的安装目录可以找到二、命令选项[root@localhost bin]# ./redis-benchmark --helpUsage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests>] [-k <boolean>] -h <hostname> Server hostname (de原创 2020-10-28 01:30:48 · 826 阅读 · 0 评论 -
Redis中的数据类型及其应用场景
**redis中有哪些数据类型?**这个问题我被面试官问过好多次了,下面总结下这5种数据类型的特点,命令,还有应用场景redis客户端的一些通用命令:ping # 测试redis是否链接 如果已链接返回 PONG echo message # 测试redis是否链接 如果已链接返回给定的message字符串keys * # 返回所有的 key 可以加*通配 exists key # 判断key是否存在 如果存在返回1,否则返回0 expire key time(s) # 设置一个 key原创 2020-10-26 17:11:26 · 323 阅读 · 3 评论 -
centos8安装单机版redis-6.0.8
一、下载安装gcc依赖[root@localhost ~]# gcc -v # 检查gcc开发环境是否已安装[root@localhost ~]# yum -y install gcc # 安装gcc二、从官网下载redis-6.0.8.tar.gz并上传到服务器三、解压redis-6.0.8.tar.gz四、原创 2020-10-24 22:51:33 · 432 阅读 · 0 评论