Redis

Linux下安装redis

[亡魂溺海] 提交于 2020-12-26 15:06:27
安装redis 1.下载地址: ​ 英文官网: https://redis.io/ ​ 中文官网: http://www.redis.cn/ 2.将下载好的tar.gz拷贝到Linux: /usr/local目录下 3.解压缩并且进入目录/usr/local/redis-xxx/ 4.安装gcc-c++环境 yum install gcc-c++ 5.执行redis安装命令 make && make install 初始配置 1.配置文件位置 cd /usr/local/redis-xxx ( 版本号 ) 找到/redis.conf 2.备份配置文件 在根目录中创建/redis-conf-copy/目录 mkdir /redis-conf-copy 将/redis.conf拷贝置/redis-conf-copy/中 cp /redis.conf /redis-conf-copy/redis.conf 3.修改为后台运行 ​ Linux系统中如果设置为前台运行,那么命令窗口一直不能关闭,一旦关闭程序退出. ​ Linux系统中如果设置为后台运行,启动完毕命令窗口就可以关闭了. ​ 将备份的配置文件中daemonize no修改为yes 4.进入命令目录并启动服务以及找到配置文件位置 ​ /usr/local/redis是安装文件的目录 ​ 使用 make && make

Redis Lua脚本完全入门

天涯浪子 提交于 2020-12-26 09:44:34
1. 前言 Redis是高性能的KV内存数据库,除了做缓存中间件的基本作用外还有很多用途,比如胖哥以前分享的 Redis GEO地理位置信息计算 。Redis提供了丰富的命令来供我们使用以实现一些计算。Redis的单个命令都是原子性的,有时候我们希望能够组合多个Redis命令,并让这个组合也能够原子性的执行,甚至可以重复使用,在软件热更新中也有一席之地。Redis开发者意识到这种场景还是很普遍的,就在2.6版本中引入了一个特性来解决这个问题,这就是Redis执行Lua脚本。 2. Lua Lua也算一门古老的语言了,玩魔兽世界的玩家应该对它不陌生,WOW的插件就是用Lua脚本编写的。在高并发的网络游戏中Lua大放异彩被广泛使用。 Lua广泛作为其它语言的嵌入脚本,尤其是C/C++,语法简单,小巧,源码一共才200多K,这可能也是Redis官方选择它的原因。 另一款明星软件Nginx也支持Lua,利用Lua也可以实现很多有用的功能。 3. Lua并不难 Redis 官方指南也指出不要在Lua脚本中编写过于复杂的逻辑。 为了实现一个功能就要学习一门语言,这看起来就让人有打退堂鼓的感觉。其实Lua并不难学,而且作为本文的场景来说我们不需要去学习Lua的完全特性, 要在Redis中轻量级使用Lua语言 。这对掌握了Java这种重量级语言的你来说根本不算难事

Docker快速上手之部署SpringBoot项目

半城伤御伤魂 提交于 2020-12-26 09:44:16
Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。 Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。 一、我所理解的Docker 我喜欢将Docker比喻成"方便面",为什么说是方便面,之前部署项目环境的配置十分麻烦,换一台机器,就要重来一次,费力费时。举个栗子,我们部署一个SpringBoot项目,我们需要在服务器上面配置项目的运行环境,要安装各种各样的软件JDK/MySQL/Redis/nginx,安装和配置这些东西十分麻烦,下次需要换个服务器重新部署又得重新安装一遍,简直要命。而Docker能将项目连带着运行环境一同部署过去,就好像泡面,泡面所需的调料包还有工具都附加在了里面。一句话总结Docker的好处,Docker解决了运行环境和配置问题,方便做持续集成并有助于整体发布的容器虚拟化技术。 二

牛逼,手撸一个SpringBoot缓存系统!

依然范特西╮ 提交于 2020-12-26 07:58:13
来源:cnblogs.com/jeffwongishandso me 缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。 本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。 一、通用缓存接口 1、缓存基础算法 FIFO(First In First Out) ,先进先出,和OS里的FIFO思路相同,如果一个数据最先进入缓存中,当缓存满的时候,应当把最先进入缓存的数据给移除掉。 LFU(Least Frequently Used) ,最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。 LRU(Least Recently Used) ,最近最少使用,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据移除。 2、接口定义 简单定义缓存接口,大致可以抽象如下: package com.power.demo.cache.contract; import java.util.function. Function ; /** * 缓存提供者接口 **/ public interface CacheProviderService { /** * 查询缓存 * * @param key 缓存键

Redis学习笔记

落爺英雄遲暮 提交于 2020-12-26 07:47:51
A.进入根目录,下载源码,解压缩后编译源码。 $ wget http://download.redis.io/releases/redis-3.0.3.tar.gz $ tar xzf redis-3.0.3.tar.gz -C/opt/ $ cd /opt/redis-3.0.3 $ make $ make install B.编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。 我安装之后src目录下面并没有出现上面的四个文件. 其中出现两个问题: $ make 命令之后: [root @localhost redis-3.0.3]# make cd src && make all make[1]: Entering directory `/opt/redis-3.0.3/src' CC adlist.o In file included from adlist.c:34: zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory zmalloc.h:55:2: error: #error "Newer version of jemalloc required" make[1]: *** [adlist

领域驱动设计,让程序员心中有码(五)

怎甘沉沦 提交于 2020-12-26 07:26:46
1 从搬砖谈领域对象   有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。不同的思维模式决定了不同的发展,十年过后,第一个工人,还是在挖洞,而第二个则成为了工头。第三个最终却成为了大设计师。   在软件开发领域,往往会使用搬砖这个词来形容我们所开发的每个功能模块,实际上也确实如此,如果把我们需要完成的每个项目,比作一座高楼大厦,那么在项目中所完成的各种模块,也确实是我们在计算机世界中利用砖块设计出来的精美建筑构建。而从领域驱动的角度来说,可以把关系,类比为建筑工程图纸中使用的各种辅助线,也可以把领域驱动中所涉及的各个对象,类比成砖块,这些砖块,大概有两种:一种是实体(Entity),一种是值对象(Value Object),而使用这些对象的工具,则成为服务(Service),完成的各个建筑构建,被成为包或者模块(Module). 2 关联关系   在介绍领域驱动设计的第三篇文章《 领域驱动设计,让程序员心中有码(三) 》中,笔者提到了UML中常用的几种关系,而关联关系是一种最为常见的关系。在软件设计过程中,无所不在的关联,有时候会让软件工程设计变得更加复杂。因此,在设计关联关系时,应该让关联更加易于控制,这意味着需要采取下列三种措施:   1

Why should I close or keep Redis connections open?

我的梦境 提交于 2020-12-26 07:21:09
问题 I'm using Redis in a PHP project. I use phpredis as a client. Sometimes, during long CLI-scripts, I experience PHP segmentation faults. I've experienced before that phpredis has problems when the connection times out. As my Redis config is configured to automatically close idle connections after 300 seconds, I guess that causes the segmentation fault. In order to be able to choose whether to increase the connection timeout or default it to 0 (which means "never timeout"), I would like to know

领域驱动设计,让程序员心中有码(五)

爷,独闯天下 提交于 2020-12-26 06:02:31
题图 From unsplash 本系列是由溪源的《领域驱动设计》读书笔记梳理而成,已经是写到第五篇了,为溪源的坚持点赞。 1 从搬砖谈领域对象   有一个古老的故事,大概是这样的。作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子。还有一个人说,我在建立一座巨大的城市。不同的思维模式决定了不同的发展,十年过后,第一个工人,还是在挖洞,而第二个则成为了工头。第三个最终却成为了大设计师。   在软件开发领域,往往会使用搬砖这个词来形容我们所开发的每个功能模块,实际上也确实如此,如果把我们需要完成的每个项目,比作一座高楼大厦,那么在项目中所完成的各种模块,也确实是我们在计算机世界中利用砖块设计出来的精美建筑构建。而从领域驱动的角度来说,可以把关系,类比为建筑工程图纸中使用的各种辅助线,也可以把领域驱动中所涉及的各个对象,类比成砖块,这些砖块,大概有两种:一种是实体(Entity),一种是值对象(Value Object),而使用这些对象的工具,则成为服务(Service),完成的各个建筑构建,被成为包或者模块(Module). 2 关联关系   在介绍领域驱动设计的第三篇文章《 领域驱动设计,让程序员心中有码(三) 》中,笔者提到了UML中常用的几种关系,而关联关系是一种最为常见的关系。在软件设计过程中,无所不在的关联

Redis学习笔记

流过昼夜 提交于 2020-12-26 05:58:31
安装JDK1.8 略 安装Redis 1. 安装gcc编译器: 2. 上传redis安装包,解压并进入redis跟目录,执行编译命令: 3. 进入redis目录下的src目录,执行安装命令: 4. 创建两个目录: 5. 将配置文件移动到上述创建的etc目录下: 6. 将src下的相关执行文件移动到上述创建的bin目录下: 7. 更改配置文件中的daemonize,改为后台启动服务: 8. 更改配置文件中dir位置: 9. 启动redis: 10. 客户端访问,退出客户端后,可发现dir目录里生成的文件: 主从复制 1. 准备两台虚拟机,配置好redis环境:   master主机IP为:192.168.81.101   slave1主机IP为:192.168.81.102 2. 修改slave1主机上的配置文件: 3. 首先启动master机器上的redis服务,然后启动slave1机器上的redis服务,在master机器上,登录redis客户端,输入info命令,可以看到相关内容: 持久化   推荐使用aof模式,直接将配置文件中的appendonly参数改为yes即可。   其他方案:    ★ appendfsync always:收到命令后就立即写入到磁盘,效率最慢,但是保证完全的持久化。    ★ appendfsync everysec:每秒钟写入磁盘一次

Redis的HelloWorld

走远了吗. 提交于 2020-12-26 05:57:42
1.安装完成的Redis:   linux安装的应用默认会在:usr/local/bin。        1.redis-benchmark:性能测试工具,是redis提供的一个高并发程序,可以在自己本机运行,看看自己本机性能如何。   2.redis-check-aof:修复有问题的AOF文件(【后续在Redis持久化】会详细讲解该用法)。   3.redis-check-rdb:修复有问题的RDB文件(【后续在Redis持久化】会详细讲解该用法)。   4.redis-cli:客户端,操作入口。   5.redis-sentinel:redis集群使用。   6.redis-server:redis服务器启动命令。    注:使用这些前必须先开启redis服务。 2.开启服务并测试HelloWorld:   1.将redis目录默认的【redis.conf】拷贝到自己定义好的一个路径下,比如【/myconf/redis.conf】(玩linux前,不管什么东西建议先备份一份 出厂的默认设置在去修改)。   2.修改redis.conf文件将里面的【daemonize no】 改成 yes,让服务在后台启动开启守护进程,输入【:wq!】保存并退出。        3.执行【ps -ef|grep redis】命令查看redis服务是否启动。当前是未启动状态。         4