精华内容
下载资源
问答
  • 文件存放到redis

    万次阅读 2017-11-02 10:59:45
    import java.io.*; 原创@北京我辉哥 public class File2Redis { /* * 文件转数组 * */ public byte[] toByteArray(String path) throws IOException { if (path == null)
    import java.io.*;
    原创@北京我辉哥
    public class File2Redis {
    
            /*
            * 文件转数组
            * */
            public byte[] toByteArray(String path) throws IOException
            {
                if (path == null)
                {
                    return null;
                }
                File f = new File(path);
                if (!f.exists())
                {
                    return null;
                }
                BufferedInputStream in = null;//创建一个缓冲处理流
                try
                {
                    in = new BufferedInputStream(new FileInputStream(f));
                    byte[] buffer = new byte[10240];//数组大小应适当大于文件
                    int len = 0;
                    int i = 0;
                    while (-1 != (len = in.read()))//逐个字节读取
                    {
                        buffer[i] = (byte) len;//读取到的字节放进数组
                        i++;
                    }
                    byte[] buffer2 = new byte[i];//新建一个与文件大小相同的数组
                    System.arraycopy(buffer, 0, buffer2, 0, i);//复制大数组中有效内容
                    return buffer2;
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                    return null;
                }
                finally
                {
                    try
                    {
                        if (in != null)
                        {
                            in.close();
                        }
                    }
                    catch (IOException e)
                    {
                        e.printStackTrace();
                    }
                }
            }
    
            /*
            * 将文件转成数组存到redis
            * */
            public Boolean setFile(String key, String path)
            {
                if (key == null || key.equals("") || path == null || path.equals(""))
                {
                    return false;
                }
    
                if (jedis != null)
                {
                    try
                    {
                        byte[] b = toByteArray(path);
                        if (b != null)
                        {
                            String json = jedis.set(key.getBytes(), b);
                            if (json != null && json.equals("OK"))
                            {
                                return true;
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else
                        {
                            return false;
                        }
    
                    }
                    catch (Exception ex)
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
            }
    
            /*
            * redis中的数组读取出来转成输入流
            * */
            public static InputStream getInputStream(String key)
            {
                if (key == null || key.equals(""))
                {
                    return null;
                }
                if (jedis != null)
                {
                    try
                    {
                        byte[] json = jedis.get(key.getBytes());//取出数组
                        if (json != null && json.length > 0)
                        {
                            try
                            {
                                InputStream inputStream = new ByteArrayInputStream(json);//转流
                                return inputStream;
                            }
                            catch (Exception e)
                            {
                                return null;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        ex.printStackTrace();
                        return null;
                    }
                }
                else
                {
                    return null;
                }
                return null;
            }
    
    
    }
    
    展开全文
  • 本地 redis .rdb 文件上传到 阿里云 redis: 为这个问题,纠结了好久。之前还搜索了好多文章,还看的 唯品会的 redis 迁移工具。 其实阿里云文档,这些都有,我们需要耐下心来,好好研究,之前就是太浮躁了,瞎看...
    本地 redis .rdb 文件上传到 阿里云 redis:
    	为这个问题,纠结了好久。之前还搜索了好多文章,还看的 唯品会的 redis 迁移工具。
    	其实阿里云文档,这些都有,我们需要耐下心来,好好研究,之前就是太浮躁了,瞎看,一看有点复杂,就不想看。
    
    参考文档:
    	云数据库 Redis 版
    		1.公网链接 - https://help.aliyun.com/document_detail/43850.html
    			注意:我们从本地 PC 访问 阿里云的 Redis 数据库,默认是拒绝的,需要一些配置。需要仔细了解 『前提条件』。
    
    			前提条件:
    			『
    				若 Redis 实例属于专有网络(VPC),ECS 必须与 Redis 实例属于同一个 VPC。
    				若 Redis 实例属于经典网络,ECS 必须与 Redis 实例属于同一节点(地域)。
    				若 Redis 实例开启了 IP 白名单,必须将 ECS 的内网地址加入白名单列表内。
    			』
    			我们项目的 Redis 实例,是属于 "经典网络",在其他地域的 ESC 上尝试了半天,确实访问不了。
    
    			Redis 实例,只支持 ECS 访问,要想在公网上访问,文档也给出了途径:
    				『可以通过在 ECS 上配置端口映射或者端口转发实现』
    
    			好像是需要安装一个 rinetd 服务。
    
    		2.使用 redis-port 恢复数据 - https://help.aliyun.com/document_detail/90931.html
    			这篇文档,讲述的有2点:
    				1>从阿里云 redis 上,下载备份文件(阿里云redis,会根据我们的设置自动备份,我们就是下载这些已备份的文件)
    				2>将本地的 redis 文件,恢复到 阿里云redis
    					这个是我们需要的功能,但是并没有在这个文档提到,参考下面链接:
    						https://help.aliyun.com/document_detail/66012.html
    
    			1>下载 redis 备份
    				1)安装 openAPI
    					pip install aliyun-python-sdk-core #安装阿里云OpenAPI依赖包
    
    					// 这个需要安装 pip,自行搜索
    
    				2)下载工具包
    					wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/73964/cn_zh/1536832169445/redis-rdb-auto-restore.zip
    
    				3)解压zip包,编辑 config.json 配置文件,配置我们的 阿里云的 AccesskeyID, AccesskeySecret,regionid。
    					unzip redis-rdb-auto-restore.zip
    					vim config.json
    						{
    							AccesskeyID: 'xxx',
    							AccesskeySecret: 'xxx',
    							regionid: 'cn-beijing',
    						}
    
    				4)执行脚本
    					python rdb_restore.py -c xxx -t xxx -p 6379 -a xxx -d 2018-09-20
    
    					注意:
    						如果一天之内有多个备份文件的话,务必加上 -b 参数,如需传入多个备份id请用逗号隔开,如:xxx,xxx,xxx
    
    				5)参数说明:
    					-c - 云数据库 redis 实例ID(--inistance_id)
    					-t - 云数据库 redis 域名(--target)
    					-p - 云数据库 redis 端口(--port)
    					-a - 云数据库 redis 密码(--auth)
    					-d - 备份的日期(--day)
    					-o - 备份到本地的路径以及文件名,默认路径是 '/root/'(--output)
    					-b - 具体的实例备份id,选填,对于一天有多个备份的时候选择具体备份,如果需要传入多个备份的话请用逗号隔开,如:xxx,xxxx,xxxx(--backup)
    					更多命令参考:python rdb_restore.py -h
    
    
    			2>上传本地 .rdb 文件到阿里云 redis 
    				1)下载 redis-port
    					wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/66008/cn_zh/1526545851725/redis-port
    
    					注意:
    						如果已经使用了 '第一步' 里,下载了备份工具包,里面已经有了 'redis-port' 了,我们就不用再次下载了
    
    
    				2)./redis-port restore --input=/xxx/xxx.rdb --target=xxx:6379 --auth=xxx
    
    					注意:
    						1.确保 redis-port 有执行权限。如果没有,执行:chmod o+x redis-port
    						2.非常关键!!!
    							测试了下 redis-port,并不会删除目前阿里云 redis 中的数据,会将我们本地的 .rdb 文件里的数据新增到里面去,所以我们需要根据自己的需求来操作。
    							如果完全使用本地的,阿里云redis不使用,直接点击 阿里云redis里的『清除数据』。
    
    				3)参数说明:
    					--input - 本地我们的 rdb 文件
    					--target - 云数据库 redis 域名:云数据库 redis 端口
    					--auth - 云数据库 redis 密码
    					--filterkey - 过滤指定的key。"str1|str2|str3":过滤包含 str1 或 str2 或 str3 的键。
    					--targetdb - 将要同步入云数据库 redis 的 DB
    					--rewrite - 覆盖已经写入的key
    					--bigkeysize - 当写入的 value 大于 SIZE 时,走大 key 写入模式
    					更多命令参考:./redis-port -h
    
    	安装 pip
    		参照官方安装:
    			https://pip.pypa.io/en/stable/installing/
    
    其他参考文章:
    	https://www.cnblogs.com/weifeng1463/p/9052045.html

     

    展开全文
  • package com.server.io.packet.extension.uploadprint; import redis.clients.jedis.Jedis; import com.redis.manager.RedisUtil; import ... ... * 游戏内自制上传关卡图片存储 * * zbs 2



    package com.server.io.packet.extension.uploadprint;
    
    import redis.clients.jedis.Jedis;
    
    import com.redis.manager.RedisUtil;
    import com.server.model.RedisStorageType;
    
    /**
     * 游戏内自制上传关卡图片存储
     * 
     * zbs 2016.10.26
     * */
    public class UpLoadIMGRedis {
    
    	/**
    	 * 增加redis自制关卡图片
    	 */
    	public static void addRedisUpLoadIMG(byte[] byteArray, int id) {
    		// -----添加数据----------
    		StringBuffer sb = new StringBuffer();
    		sb.append(RedisStorageType.REDIS_TYPE_UPLOADIMG);
    		sb.append(id);
    
    		try {
    
    			Jedis jedis = RedisUtil.getJedis();
    			jedis.set(sb.toString().getBytes(), byteArray);
    //			jedis.save();
    //			jedis.bgsave();
    			//注释掉存储方法redis会定期存储
    			RedisUtil.returnResource(jedis);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		// RedisUtil.getJedis().set(sb.toString().getBytes(),byteArray);
    		// RedisUtil.getJedis().save();
    
    	}
    
    	/**
    	 * 删除redis自制关卡图片
    	 */
    	public static void delRedisUpLoadIMG(int id) {
    		// -----删除数据----------
    		StringBuffer sb = new StringBuffer();
    		sb.append(RedisStorageType.REDIS_TYPE_UPLOADIMG);
    		sb.append(id);
    
    		try {
    
    			Jedis jedis = RedisUtil.getJedis();
    			jedis.del(sb.toString());
    //			jedis.save();
    //			jedis.bgsave();
    			//注释掉存储方法redis会定期存储
    			RedisUtil.returnResource(jedis);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		// RedisUtil.getJedis().del(sb.toString());
    		// RedisUtil.getJedis().save();
    
    	}
    
    	/**
    	 * 获取redis自制关卡图片数据
    	 * */
    	public static byte[] getUpLoadIMG(int id) {
    		StringBuffer sb = new StringBuffer();
    		sb.append(RedisStorageType.REDIS_TYPE_UPLOADIMG);
    		sb.append(id);
    
    		byte[] back = null;
    		try {
    
    			Jedis jedis = RedisUtil.getJedis();
    			back = jedis.get(sb.toString().getBytes());
    			RedisUtil.returnResource(jedis);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		// return RedisUtil.getJedis().get(sb.toString().getBytes());
    		return back;
    
    	}
    
    }
    
    jedis.select(Global.redisIndex); 中的参数是区分redis中的那个DB
    
    

    展开全文
  • docker使用redis.conf配置文件方式启动redis无反应无日志  如题,场景重现:因为配置多了,不想通过... 上传到/mydata/redis/data目录后,因为我是在普通用户下,所以需要将redis.conf文件修改下属主和组: ..

    转载自:https://www.cnblogs.com/wuxun1997/p/11804089.html

    docker使用redis.conf配置文件方式启动redis无反应无日志

      如题,场景重现:因为配置多了,不想通过参数来启动docker容器中的redis,特意上github找了对应版本的redis.conf,修改了相关配置,只让本机使用:

     

     

      上传到/mydata/redis/data目录后,因为我是在普通用户下,所以需要将redis.conf文件修改下属主和组:

    复制代码

    [mall@VM_0_7_centos data]$ ll
    total 48
    -rw-r--r-- 1 polkitd input     0 Nov  6 03:02 appendonly.aof
    -rw-r--r-- 1 root    root  47759 Nov  6 10:49 redis.conf
    [mall@VM_0_7_centos data]$ sudo chown polkitd.input redis.conf 
    [mall@VM_0_7_centos data]$ ll
    total 48
    -rw-r--r-- 1 polkitd input     0 Nov  6 03:02 appendonly.aof
    -rw-r--r-- 1 polkitd input 47759 Nov  6 10:49 redis.conf

    复制代码

     

      接着停掉原来的redis、删除原有docker容器中的redis镜像,再重新以配置文件方式启动:

    复制代码

    [mall@VM_0_7_centos data]$ sudo docker stop redis
    redis
    [mall@VM_0_7_centos data]$ sudo docker rm redis
    redis
    [mall@VM_0_7_centos data]$ sudo docker run -p 6379:6379 --name redis -v /mydata/redis/data/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data -d redis:3.2 redis-server /etc/redis/redis.conf
    a02b1a8d290e276d401a612f9a8239a01aab3b2feb952dfed50b33da2d3f5a54

    复制代码

      

      然而,没有反应,进程并未成功起来:

     

       也没有报错日志:

     

      解决方案:在redis.conf中注掉daemonize yes这一行,或者改为daemonize no。因为我们的docker run里参数-d就是以守护进程方式启动redis,而配置文件里daemonize yes这个东东再次以守护进程方式启动,而且它会读取pidfile这个配置的文件作为进程ID文件。说白了,就是docker启动参数跟redis.conf配置冲突了。

      改redis.conf:

     

       再启docker,ok了:

     

      现在没法从外网连接进来了:

    展开全文
  • redis的配置及其使用 redis的可视窗口化工具 fastdfs的文件上传配置及其使用
  • 2、然后解压文件上传到linux服务器 3、./redis-cluster-start-all.sh 开启reids 4、执行 ./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 ...
  • 将图片存储在了七牛云服务器中。但是这个过程存在一个问题,就是如 果用户只上传了图片而没有最终保存套餐信息我们的数据库,这时我们上传的图片...1、当用户上传图片后,将图片名称保存到redis的一个Set集合中,...
  • 这允许用户选择他们想要将他们的 index.html 文件上传到哪个后端。 有关什么是适配器及其工作方式的更多信息,请访问 建造 创建此适配器的实例时可以设置以下属性: 连接(必填) 类型:对象 允许此适配器连接 ...
  • 搭建单机redis服务,结合fastdfs,springboot实现h5与fastdfs之间的断点续,大文件上传,秒。技术采用:webuploader+springboot+redis+fastdfs(服务端)+FastDFS_Client。 本文所需实现工具,皆在此包中...
  • 文件分片上传 SpringBoot+Redis文件实现文件分片上传,断点续,急速秒。前端使用vue-simpler-uploader实现文件并发上传
  • 网站配置上Redis可以增加服务器并发能力,博主这里简单介绍一下如何安装Redis服务。下载安装Redis各个发行版本可以直接去这里查找。wget http://download.redis.io/releases/redis-stable.tar.gz //下载安装包tar ...
  • redis

    千次阅读 2020-04-27 12:36:07
    文章目录redis简介redis重要的特性redis应用场景安装redis全局命令字符串 redis简介 redis是一种基于key-value的NoSQL数据库,和memcached类似,只不过它支持的值类型相对更多,包括string(字符串)、list(链表)、set...
  • java标准项目搭建,只要修改配置文件的ip就可以正常启动,包含查数据库,redis缓存技术,切面在service,可以设置缓存有效期,elaticsearch搜索技术,elaticsearch工具类,上传文件等工具类!初学者很好的帮助代码!...
  • Redis

    千次阅读 2019-05-28 10:27:27
    下面是自己在学习Redis是的一些总结Redis概述Redis持久...Redis可以将数据复制任意数量的从服务器。Redis的优势: 1、Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。 2、Redis支持丰富的数据类型...
  • 使用Redis的管道传输功能,可以将RDS for MySQL或本地MySQL的数据快速迁移到Redis中。使用其它引擎的RDS数据库也可以参照本文的方法将数据迁移到Redis中。 场景介绍 在应用与数据库之间使用Redis作为缓存层,扩展...
  • redis文件事件和时间事件

    千次阅读 2021-08-24 23:29:52
    Redis在6.0以前是单线程的,在6.0之后可以通过配置文件开启多线程,6.0之后的多线程是指在io方面使用多线程来执行以加快I/O的速度。 Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件: 文件事件(file ...
  • Redis入门入土教程_1

    万次阅读 2020-10-16 15:47:13
    Redis01_下载和安装 Redis (Remote Dictionary Server 远程字典服务) 是一种 C语言编写 的 可基于内存 亦 可持久化 的日志型、Key-Value数据库 官网:https://redis.io/ Windows安装 在GitHub上下载安装包并解压...
  • Redis(九):redis.conf 配置文件说明

    千次阅读 2019-05-25 22:59:07
    # Redis 配置文件. # # 请注意,为了读取配置文件,必须以文件路径作为第一个参数启动Redis: # # ./redis-server /path/to/redis.conf # 内存大小单位 # # 1k => 1000 bytes # 1kb => 1024 bytes ...
  • Redis配置文件redis.conf 详解

    千次阅读 2016-11-30 19:48:55
    启用AOF和RDB持久性,如果又一个或者多个写入点时,在写入点和写入点之间的时间里所有add的键值回丢失,如果启用此特性,redis会将add的值先写入附加文件中,此参数默认就是启用这个特性。 appendonly no ...
  • 以前在centos7下面安装redis要做一堆操作,现在发现用docker安装redis可以做到急速安装,然后启动的时候只要带上配置文件创建容器就可以部署好了,所以将此次部署过程记录一下,以及干掉一些很坑的操作 1.docker查询...
  • Redis 5.0.5 redis.conf 配置文件说明

    千次阅读 2019-08-20 18:08:45
    Redis 5.0.5 配置文件说明 一般配置 #修改daemonize为yes,即默认以后台程序方式运行(跟使用&号强制后台运行是一个意思) daemonize yes #修改默认监听端口(一般用默认的) port 6379 #修改生成默认日志...
  • Linux下安装Redis

    万次阅读 多人点赞 2018-12-10 16:13:14
    官网下载链接:https://redis.io/download 1、选择Stable(5.0)下的Download 5.0.0 ...2、下载完成之后,打开WinSCP,把我们下载好的Redis压缩包,上传到Linux的 /mnt/ 文件目录下 3、使用putty连接我们的Li...
  • Redis配置文件的使用

    2020-03-15 20:44:44
    配置文件下 vi /etc/redis.conf 写入配置项 port 1111 # 配置端口号 daemonize yes # 是否后台运行 daemonize yes/no logfile /var/log/redis.log # 日志文件位置 dbfilename dump.rbd ...
  • 定时刷新,一但那边的服务器上传文件,就下载 2.从Redis中获取文件名称(此时的Redis相当于一个消息队列) /** * @Author Ragty * @Description 定时程序(每十秒请求一次) * @Date 15:05 2019/3/19 **/ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,773
精华内容 30,309
关键字:

文件上传到redis

redis 订阅