
Redis
文章平均质量分 67
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
y_bccl27
这个作者很懒,什么都没留下…
展开
-
Memcache
memcache就是一个数据库、但是数据存在内存中。常用来做缓存服务器、将从数据库查询的数据缓存起来,减少数据库查询、加快查询速度。原创 2020-04-24 09:06:23 · 452 阅读 · 0 评论 -
Windows中Redis的安装与启动
第一步:在Redis官网下载该Windows版本的安装包,如下所示原创 2020-03-31 14:05:46 · 1575 阅读 · 0 评论 -
Linux中Redis的安装
1.下载Redis(两种方法)第一种方法:进入到官网:http://redis.io/download下载Redis 压缩包(推荐第一种) 第二种方法:在linux中使用如下命令直接下载Redis压缩包,但是在下载过程中容易卡死,因此不推荐使用该种方法wget http://download.redis.io/releases/redis-5.0.3.tar.gz 下载...原创 2019-02-18 08:37:13 · 9906 阅读 · 2 评论 -
Linux中Redis的卸载
Linux中Redis的卸载:删除相应的目录即可1.删除redis解压目录:rm -rf reids的解压目录2.删除redis配置目录:rm -rf /usr/local/redis原创 2019-02-18 08:37:39 · 7691 阅读 · 0 评论 -
使用前台方式启动Redis时,出现Creating Server TCP listening socket 127.0.0.1:6379: bind: Address already in use报错
问题描述:使用前台启动方式启动Redis时,出现Creating Server TCP listening socket 127.0.0.1:6379: bind: Address already in use报错解决办法:1.在linux终端命令行中运行:redis-cli 127.0.0.1:6379> shutdown not connected> ex...原创 2019-02-26 19:52:49 · 6081 阅读 · 4 评论 -
linux系统安装redis,外部无法访问
问题描述:在外部直接连接redis无法进行访问解决方法:linux中刚开始安装的redis,其绑定的ip地址为127.0.0.1,因此在外部直接连接redis是无法进行访问的,解决方法就是将redis的配置文件redis.conf中的bind 127.0.0.1注释掉,外部网络就可访问该redis服务...原创 2019-02-15 09:52:56 · 2538 阅读 · 0 评论 -
使用Redis Desktop Manager连接Redis服务器
1.打开RedisDesktopManager客户端软件,首次打开,连接列表都是空白的,可以点击最下方的"Connect to Redis Server"添加新的redis连接2.name表示给该连接起一个名字,host表示Redis服务器的ip地址,Port表示的是端口号,Auth是密码字段,如果redis服务器设置了密码验证,则需要填写,没有设置,为空即可,点击”Test Connec...原创 2019-02-26 16:52:27 · 7689 阅读 · 0 评论 -
SpringBoot连接Redis服务出现Command timed out
问题描述:SpringBoot整合Redis,连接Redis服务时出现Command timed out解决方法: 查看配置文件是否是设置的连接超时时间过小,一般将其设置为5000毫秒原创 2019-02-15 10:57:00 · 21713 阅读 · 3 评论 -
SpringBoot中使用RedisTemplate报错 ERR value is not an integer or out of range
在Spring Boot项目中引入redis依赖,在执行redis递增操作时,控制台报错:io.lettuce.core.RedisCommandExecutionException: ERR value is not an integer or out of range原创 2022-09-22 22:32:47 · 1533 阅读 · 0 评论 -
SpringBoot连接Redis服务出现DENIED Redis is running in protected mode because protected mode is enabled
问题描述:SpringBoot连接Redis服务出现DENIED Redis is running in protected mode because protected mode is enabled解决方法:是说Redis服务处于保护模式,我们需要修改配置文件redis.conf。将NETWORK下的protected-mode yes修改为protected-mode no,然...原创 2019-02-15 11:09:57 · 58988 阅读 · 0 评论 -
Spring Boot中RedisTemplate的使用
RedisTemplate是SpringDataRedis中对JedisApi的高度封装,提供了redis各种操作、异常处理及序列化,支持发布订阅。原创 2023-10-23 21:30:00 · 2926 阅读 · 0 评论 -
Redis中的五种基本数据类型
2.Hash类型Hash类型是String类型的field和value的映射表,或者说是一个String集合,它特别适合存储对象。相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。2.3 hmsethmset命令可以进行批量存储多个键值对:hmset user id 1 name zhangsan age 252.4 hmgethmget命令进行批量获取多个键值对:hmget user id name a..原创 2022-05-28 19:34:45 · 270 阅读 · 0 评论 -
Redis中的高级命令
1. keyskeys pattern:该命令返回满足的所有键,模糊匹配2. existsexists key:该命令表示是否存在指定的key3. expireexpire key seconds:该命令表示设置指定key的过期时间4. ttlttlkey:该命令表示设置指定key的剩余过期时间5. persistpersist key:该命令表示取消指定key的过期时间6. selectselect index:该命令表示选择数据库,数据库.原创 2022-05-29 17:25:53 · 196 阅读 · 0 评论 -
Redis中的缓存雪崩、缓存穿透、缓存击穿
1.缓存雪崩缓存雪崩是指缓存同一时间大面积的失效,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。解决方案:1.缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。2.给每一个缓存数据增加相应的缓存标记,记录缓存是否失效,如果缓存标记失效,则更新数据缓存3.缓存预热(针对系统服务启动前所做的操作)4.互斥锁(查询数据库的时候将缓存中的键锁起来,查完数据库之后,再将值放到缓存中释放锁)2.缓存穿透缓存穿透是指缓存和数据库中都没有的数据,导致所有的原创 2022-05-16 22:55:18 · 372 阅读 · 0 评论 -
Redis BitMap实现签到和统计
位图(bitmap)同样属于string 数据类型原创 2023-02-07 20:40:42 · 864 阅读 · 3 评论 -
一个注解搞定Spring Boot接口防刷
将一个用户的访问次数写到缓存里,同时给数据加有效期,次数增加直接对数据+1。接口限流防刷:防止用户大量重复访问,一分钟之内或几秒内限制访问多少次。如果在有效期内,数据超过某数值,访问返回失败。有效期过了,重新存入数据。原创 2020-05-28 19:51:31 · 230 阅读 · 0 评论 -
Redis中的主从复制
Redis主从复制原创 2022-12-28 17:56:22 · 588 阅读 · 0 评论 -
Redis中的哨兵机制
监控主数据库和从数据库是否正常运行。主数据库出现故障时,可以自动将从数据库转换为主数据库,实现自动切换。原创 2022-12-28 22:36:43 · 905 阅读 · 1 评论 -
布隆过滤器
如果我们要把“你好”这个数据存到布隆过滤器里面去, 首先布隆过滤器会使用3个哈希函数对“你好”进行哈希运算计算出三个哈希值,然后它会将哈希值映射到这个数组里面。第一个哈希值为3,布隆过滤器会将下标为3的位置的值修改为1,第二个哈希值为5,布隆过滤器会将下标为5的位置的值修改为1,第一个哈希值为7,布隆过滤器会将下标为7的位置的值修改为1。这样的话,“你好”这个数据就算存到了布隆过滤器里面。比如说我们查询“你好”这个数据,还是要通过上述三个哈希函数算出“你好”这个数据的哈希值存在于哪个下标位置,这三个位置的二原创 2022-06-19 22:34:33 · 101 阅读 · 0 评论 -
Redis缓存穿透解决方案-布隆过滤器
我们可以把布隆过滤器理解为一个白名单或者是一个黑名单,因为它的主要作用就是判断一个元素存不存在于这个过滤器里面,就可以变相的理解这个过滤器是一个白名单或者是一个黑名单。我们把数据放到了一个白名单里或者放到一个黑名单里,然后再去判断某个数据是否存在于这个白名单或者黑名单里。第一步:前端发起了一个查询请求,通过参数key去查询第二步:参数key会经过一个布隆过滤器,如果这个key不存在于这个过滤器里面,也就是不存在于这个白名单里面,那么就会被过滤器拦截住,然后直接返回这个空数据给前端;如果存在于过滤器里面就会往原创 2022-06-22 21:36:41 · 595 阅读 · 0 评论 -
Redis的过期键的删除策略
Redis是key-value数据库,我们可以设置Redis中缓存的key的过期时间。Redis的过期策略就是指当Redis中缓存的key过期了,Redis如何处理。惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。通过调整定时扫描的原创 2022-05-25 23:19:17 · 133 阅读 · 0 评论 -
Redis中的事务
Redis中的事务非常简单,其使用方法如下:首先是使用multi方法打开事物然后进行设置,这时设置的数据都会放入队列里进行保存最后使用exec执行,把数据依次存储到redis中。除了上述使用exec命令提交事务,也可以使用discard命令取消事务:特别提示:在使用multi开启事务,使用exec命令提交事务时,中间即使有语法命令出现错误,不会进行回滚操作...原创 2022-06-11 15:50:08 · 87 阅读 · 0 评论 -
数据库与缓存数据一致性问题
对于这个缓存和数据库数据一致性的问题,有一个经典的解决方案,就是Cache Aside Pattern。Cache Aside Pattern的三种方案如下:其中更新这一块涉及到缓存与数据库的一致性问题,存在4种可能情况:如果更新缓存成功了,再去更新数据库。但是在更新数据库时更新失败了,这个时候数据库数据就要回滚,缓存也是需要进行回滚,只能手工编程去删除缓存,这是一个比较麻烦的事情,因此这个策略在顺序执行上是不合理的。线程A更新了数据库将key设置为1,然后这个时候CPU资源被B线程抢到了,B线程更新了数据原创 2022-06-19 15:22:13 · 273 阅读 · 0 评论