分类归档

服务器教程

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

FWQ
服务器教程
redis服务器允许远程主机访问的方法
redis服务器允许远程主机访问的方法 0浏览 收藏 在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《redis服务器允许远程主机访问的方法》,聊聊访问、redis远程、主机,希望可以帮助到正在努力赚钱的你。 若远程主机需要访问redis服务器,可以修改redis.conf配置文件 bind字段默认为: bind 127.0.0.1 这样只能本机访问redis 若允许远程主机访问,可注释掉bind行   或者    将bind 127.0.0.1改为: bind 0.0.0.0 在远程主机验证能否访问redis 服务器: ./redis-cli -h REDIS_HOST_IP_ADDR -p 6379 REDIS_HOST_IP_ADDR : 6379> ping PONG 即成功访问redis服务器!…
2024-12-01 阅读全文 →
FWQ
服务器教程
Windows下Redis的安装使用教程
Windows下Redis的安装使用教程 0浏览 收藏 本篇文章向大家介绍《Windows下Redis的安装使用教程》,主要包括WindowsRedis,具有一定的参考价值,需要的朋友可以参考一下。 本文主要为大家介绍缓存技术中的一种Redis的安装和使用,供大家参考,具体内容如下 一、下载Redis for windows 在网络中搜索Redis fow windows,就可以下载Redis的压缩包。解压包。 会发现其中有32位和64位的不同版本的包,根据需要,使用对应的压缩包即可。 二、解压 我使用的是redisbin_x64.zip的压缩包,将其解压到redis的文件夹中。 解压之后,会发现内容只有一些.exe的文件。到这里,redis就算做好了一半了。 三、配置 在redis下新建一个conf的文件夹,并创建 redis.conf 文本文件。将一下内容复制到配置文件中。 # Redis configuration file example # By default Redis…
2024-12-01 阅读全文 →
FWQ
服务器教程
使用注解实现Redis缓存功能
使用注解实现Redis缓存功能 0浏览 收藏 本篇文章给大家分享《使用注解实现Redis缓存功能》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。 本文实例为大家分享了使用注解实现Redis缓存功能的具体代码,供大家参考,具体内容如下 非关系型内存数据库,有持久化操作, c语言编写的key,value存储系统(区别于MySQL的二维表格的形式存储。) rdb:周期性的持久化 aof:以日志形式追加 默认rdb开启,同时开启使用aof 数据类型:string、list、set、zset、hash、 bitMaps 字节形式存储、geospatial 经纬度类型… 单线程:采用多路io复用实现高并发 使用: 添加依赖   org.springframework.boot   spring-boot-starter-data-redis   org.apache.commons   commons-pool2   2.6.0…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis慢查询日志与监视器问题
Redis慢查询日志与监视器问题 0浏览 收藏 大家好,今天本人给大家带来文章《Redis慢查询日志与监视器问题》,文中内容主要涉及到日志、Redis慢查询、监视器,如果你对数据库方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢! 我们都知道MySQL有慢查询日志 Redis也有慢查询日志,可用于监视和优化查询 1、慢查询设置 在redis.conf中可以配置和慢查询日志相关的选项: #执行时间超过多少微秒的命令请求会被记录到日志上 0 :全记录 Redis使用列表存储慢查询日志,采用队列方式(FIFO) config set的方式可以临时设置,redis重启后就无效 config set slowlog-log-slower-than 微秒 config set slowlog-max-len 条数 查看日志:slowlog get [n] 127.0.0.1:6379> config set…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis实现分布式锁的几种方法总结
Redis实现分布式锁的几种方法总结 0浏览 收藏 本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《Redis实现分布式锁的几种方法总结》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~ Redis实现分布式锁的几种方法总结 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。 我们来假设一个最简单的秒杀场景:数据库里有一张表,column分别是商品ID,和商品ID对应的库存量,秒杀成功就将此商品库存量-1。现在假设有1000个线程来秒杀两件商品,500个线程秒杀第一个商品,500个线程秒杀第二个商品。我们来根据这个简单的业务场景来解释一下分布式锁。 通常具有秒杀场景的业务系统都比较复杂,承载的业务量非常巨大,并发量也很高。这样的系统往往采用分布式的架构来均衡负载。那么这1000个并发就会是从不同的地方过来,商品库存就是共享的资源,也是这1000个并发争抢的资源,这个时候我们需要将并发互斥管理起来。这就是分布式锁的应用。 1.实现分布式锁的几种方案     1.Redis实现   (推荐)     2.Zookeeper实现     3.数据库实现 Redis实现分布式锁 * * 在集群等多服务器中经常使用到同步处理一下业务,这是普通的事务是满足不了业务需求,需要分布式锁 * * 分布式锁的常用3种实现: * 0.数据库乐观锁实现 * 1.Redis实现 ---…
2024-12-01 阅读全文 →
FWQ
服务器教程
SpringMVC集成redis配置的多种实现方法
SpringMVC集成redis配置的多种实现方法 0浏览 收藏 亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《SpringMVC集成redis配置的多种实现方法》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下配置、SpringMVCredis,希望所有认真读完的童鞋们,都有实质性的提高。 第一步:下载并安装Redis(网上已经有很多安装教程在此不细讲了) 第二步:pom文件引入jar包 在此需要注意Redis和jedis连接工厂版本 redsi:https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis jedis:https://mvnrepository.com/artifact/redis.clients/jedis org.springframework.data spring-data-redis 1.7.2.RELEASE redis.clients jedis 2.9.0 第三步:配置redis.properties文件 # Redis Setting # Redis默认有16个库,序号是0-15,默认是选中的是0号数据库 spring.redis.database=0 # Redis服务器地址 spring.redis.host=127.0.0.1 # Redis服务器连接端口,默认是6379 spring.redis.port=6379…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis中的bitmap详解
Redis中的bitmap详解 0浏览 收藏 IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《Redis中的bitmap详解》,聊聊redisbitmap,我们一起来看看吧! 1、什么是bitmap? bitmap也叫位图,也就是用一个bit位来表示一个东西的状态,我们都知道bit位是二进制,所以只有两种状态,0和1。 2、为什么要有bitmap? bitmap的出现就是为了大数据量而来的,但是前提是统计的这个大数据量每个的状态只能有两种,因为每一个bit位只能表示两种状态。 下面我们直接以一个统计亿级用户活动的状态来说明吧。 3、案例说明 3.1、案例描述 如果有一个上亿用户的系统,需要我们去统计每一天的用户登录情况,我们应该如何去解决? 前提条件:设置在9月19号有下标为100、101、102、103四个用户都登录了系统 设置在9月20号有下标为100、101、102三个用户都登录了系统 提出问题: 1、取出9月19号登录系统的有多少人? 答:直接获取即可。 2、取出9月19号和9月20号连续登录系统的有多少人? 答:两天的数据取&运算。 3、取出9月19号与9月20号任意一天登录的有多少人? 答:两天的数据取|运算。 3.2、解决方案 3.2.1、解决方案1—使用传统数据库解决 如果我们需要使用传统的数据库去统计的话,我么需要创建一张表,然后某个用户登录了,我们就去在表里面插上一条记录,登记用户的id,用户登录的时间等等,但是这样出现的问题就是,每一天的数据量都很大,我们在统计日活时,效率就很低,所以这种解决方案是不能被考虑的。 3.2.2、解决方案2—使用bitmap解决 既然用户登录只有两种状态,那么,我们就可以用bitmap 比如0表示未登录,1表示登录 //…
2024-12-01 阅读全文 →
FWQ
服务器教程
基于Redis过期事件实现订单超时取消
基于Redis过期事件实现订单超时取消 0浏览 收藏 知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《基于Redis过期事件实现订单超时取消》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟! 订单超时取消的实现,首先想到的是定时任务,但是这种实现方式在订单量较大的情况下是有问题的,而且时间也会有误差,最大时间差就是定时任务的执行间隔时间。 使用redis的过期监听事件可以比较好的解决这个问题。实现的方式是订单创建后向redus中存一记录,一般就以订单号为key。设置过期时间(订单超时时间),一旦时间超时会触发监听事件,这时候就可以通过key判断这个订单是否支付,未支付时取消订单。 redis过期监听的实现: 1.修改redis.windows.conf配置文件中notify-keyspace-events的值 默认配置notify-keyspace-events的值为” “,修改为 notify-keyspace-events Ex 这样便开启了过期事件 2. 创建配置类RedisListenerConfig(配置RedisMessageListenerContainer这个Bean) @Configuration public class RedisListenerConfig { @Autowired private RedisTemplate redisTemplate; /** * 处理乱码 * @return */…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis 和 Memcached 的区别大吗?只选一个做缓存我们该选哪个?
Redis 和 Memcached 的区别大吗?只选一个做缓存我们该选哪个? 0浏览 收藏 知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《Redis 和 Memcached 的区别大吗?只选一个做缓存我们该选哪个?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟! 了解过两者的同学有那么个大致的印象: 1、redis与memcached相比,比仅支持简单的key-value数据类型,同时还提供list,set,zset,hash等数据结构的存储; 2、redis支持数据的备份,即master-slave模式的数据备份; 3、redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用等等。 这似乎看起来redis比memcached更加牛逼一些,那么事实上是不是这样的呢?存在即合理,我们来根据几个不同点来一一比较一下。 网络IO模型 memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描述字pipe传递给worker线程,进行读写IO,网络层使用libevent封装的事件库,多线程模型可以发挥多核作用,但是引入了cache coherency和锁的问题,比如:memcached最常用的stats命令,实际memcached所有操作都要对这个全局变量加锁,进行技术等工作,带来了性能损耗。 redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架,主要实现了epoll, kqueue和select,对于单存只有IO操作来说,单线程可以将速度优势发挥到***,但是redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型施加会严重影响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞的。 数据支持类型 memcached使用key-value形式存储和访问数据,在内存中维护一张巨大的HashTable,使得对数据查询的时间复杂度降低到O(1),保证了对数据的高性能访问。 正如开篇所说:redis与memcached相比,比仅支持简单的key-value数据类型,同时还提供list,set,zset,hash等数据结构的存储;详细可以翻阅《Redis内存使用优化与存储》 内存管理机制 对于像Redis和Memcached这种基于内存的数据库系统来说,内存管理的效率高低是影响系统性能的关键因素。传统C语言中的malloc/free函数是最常用的分配和释放内存的方法,但是这种方法存在着很大的缺陷:首先,对于开发人员来说不匹配的malloc和free容易造成内存泄露;其次频繁调用会造成大量内存碎片无法回收重新利用,降低内存利用率;***作为系统调用,其系统开销远远大于一般函数调用。所以,为了提高内存的管理效率,高效的内存管理方案都不会直接使用malloc/free调用。Redis和Memcached均使用了自身设计的内存管理机制,但是实现方法存在很大的差异,下面将会对两者的内存管理机制分别进行介绍。 Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先规定的大小,将分配的内存分割成特定长度的块以存储相应长度的key-value数据记录,以完全解决内存碎片问题。Slab Allocation机制只为存储外部数据而设计,也就是说所有的key-value数据都存储在Slab…
2024-12-01 阅读全文 →
FWQ
服务器教程
Redis在企业级任务调度中的使用案例与实践
Redis在企业级任务调度中的使用案例与实践 收藏 大家好,我们又见面了啊~本文《Redis在企业级任务调度中的使用案例与实践》的内容中将会涉及到等等。如果你正在学习数据库相关知识,欢迎关注我,以后会给大家带来更多数据库相关文章,希望我们能一起进步!下面就开始本文的正式内容~ 随着企业级应用的复杂化和业务规模的扩大,任务调度成为了一项不可或缺的重要工作。而随之而来的问题就是如何管理和调度大量的任务,协调不同的业务流程,确保系统的稳定性和可靠性。为了解决这个问题,Redis作为一款高性能数据结构数据库,被越来越多的企业用来作为任务调度的中心节点,用于管理和调度日益复杂的任务流程。本文就以Redis在企业级任务调度中的使用案例与实践为例,来分析Redis在这一领域的优势和应用方式。 一、Redis在任务调度中的地位和作用 作为一款高性能键值对数据库,Redis具有很多符合任务调度要求的特点,这些特点使得Redis在任务调度方面成为了一个非常理想的选择: 高性能:Redis的性能非常高,在数据写入和读取方面表现极为出色,这对于任务调度来说非常重要。任务调度系统中,会涉及到大量的数据传递和读取,如果处理速度跟不上,将会成为系统的瓶颈。而Redis能够提供快速速度的数据操作,能够大幅提升任务调度的效率。 高可扩展性:当企业业务需求不断扩大时,任务调度系统中也会涉及到更多的任务,如果没有一个可扩展的解决方案,系统将很快陷入瓶颈和停滞。而Redis作为一款分布式数据库,能够轻松地扩展和集成到企业级架构中去,为任务调度的可扩展性提供了很大的帮助。 多样化结构:Redis支持多种数据结构,如字符串、哈希表、列表、集合等,这些结构都非常适合任务调度所需的功能实现。例如,Redis的列表结构非常适合任务队列,而哈希表则适用于任务调度中的参数传递,因此,在任务调度系统中使用Redis能够更好地满足不同的业务需求。 可靠性高:Redis的数据存储和备份处理都非常稳定,能够保证任务调度系统的工作过程中数据不会出现异常,而且Redis提供了状态监控和自动故障转移机制,能够在节点故障或宕机时自动恢复。 二、 Redis在任务调度中的具体应用 任务队列的管理和调度 任务队列是一个非常重要的概念,它能够帮助企业快速处理大量任务,将任务按照顺序排队处理。在Redis中,使用列表结构即可实现一种优秀的任务队列机制。 例如,可以使用lpush命令将任务加入到队列中,使用rpop命令从队列中获取任务并处理,使用llen命令获取待处理任务数量等。此外,还可以借助Redis的BLPOP命令,实现在队列中等待任务的一种阻塞机制,当任务队列中存在任务时,此命令才会返回结果,从而实现任务调度时的一种实时性和等待性。 缓存和数据存储 Redis的缓存功效不言而喻,在任务调度系统中也很适用。任务调度系统会涉及到很多数据传递和数据存储,如果每次都从磁盘中读写数据会极大地降低系统速度,而借助Redis的缓存机制,将一部分数据缓存到内存中进行读取和存储,能够大幅提高任务调度的速度和效率。数据持久化可结合使用Redis的RDB或AOF机制进行保证,避免Redis宕机时造成数据丢失。 分布式锁和信号量 在任务调度系统中,很容易遇到多个任务同时操作数据的情况,此时需要一个可靠的机制来保证数据不被锁死,Redis提供了一个很好的解决方案:分布式锁和信号量。 例如,任务调度系统中需要保证同一时间只有一个线程在处理任务,可以通过Redis的setnx方法来实现一个分布式锁。当setnx设置键值对成功时,表示锁处于空闲状态,任务处理线程可以即时开始工作。此外,可以利用Redis的信号量机制来实现任务的限制和控制,例如限制某个任务只能同时处理10个线程等。 三、 Redis在任务调度中的使用案例 微信公众号文章采集系统 在微信公众号的运营过程中,有时会存在需要采集大量文章的情况,使用传统的数据存储和检索方式往往会导致系统占用较多的I/O资源和维护成本。而使用Redis,可以将采集到的文章信息存储在一个队列中,使用Redis的BRPOPLPUSH命令来处理采集任务,保证任务调度的实时性和稳定性。 日志清理系统 企业级应用中不断产生海量的日志,为了避免磁盘空间被浪费和系统卡顿,需要定期清理日志。传统的日志清理方式需要对日志文件进行遍历,当日志数量较大时检索效率会变得极低,而使用Redis,可以将需要清理的日志信息暂存到列表中,然后通过Redis的BLPOP命令实时处理相关任务。 四、 总结…
2024-12-01 阅读全文 →