手把手教你从零搭建一个Redis服务

自己在搭建redis服务的时候碰到一些问题,好多人只告诉你怎么成功搭建,但是并没有整理过程中遇到的问题,所有楼主就花了点时间来整理下。 2019-08-26 09:25:23 RedisJavaLinux 大数据需求使用的六个Hadoop发行版 Apache Hadoop是一个出色的软件框架,允许处理大数据元素。它可以通过采用模块化系统和处理大量数据来使用商用硬件的强大功能。Hadoop可以在不同的发行版中使用,因为公司通常将其作为打包交易提供。 2019-08-26 09:20:43 Hadoop大数据数据库 MySQL导入导出命令-mysqldump mysqldump 是个mysql数据库自带的命令行工具,单线程执行,可以用来备份和还原数据。可以生成 CSV、TXT、XML格式的文件输出。

自己在搭建redis服务的时候碰到一些问题,好多人只告诉你怎么成功搭建,但是并没有整理过程中遇到的问题,所有楼主就花了点时间来整理下。

[[274854]]

前言

自己在搭建redis服务的时候碰到一些问题,好多人只告诉你怎么成功搭建,但是并没有整理过程中遇到的问题,所有楼主就花了点时间来整理下。

  • linux环境安装redis
  • 安装中的碰到的问题和解决办法
  • 怎么在代码中使用安装的redis
  • 设置用户名和密码
  • 程序应用中碰到的问题

介绍

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

一、安装redis

1、下载安装包

  1. cd/www/redis/
  2. wgethttp://download.redis.io/releases/redis-4.0.8.tar.gz
  3. tar-zxvfredis-4.0.8.tar.gz
  4. mvredis-4.0.8redis

2、编译redis

  1. cd/www/redis/redis/
  2. makeMALLOC=libc
  3. makePREFIX=/usr/local/redisinstall

3、准备配置文件

  1. cd/usr/local/redis
  2. mkdirconf
  3. cdconf/
  4. viredis_6379.conf

配置文件内容如下:

  1. bind127.0.0.1
  2. protected-modeno
  3. port6379
  4. tcp-backlog511
  5. timeout0
  6. tcp-keepalive300
  7. daemonizeyes
  8. supervisedno
  9. pidfile/www/redis/data/redis/6379/redis_6379.pid
  10. loglevelnotice
  11. logfile"/www/redis/data/redis/6379/log.log"
  12. databases16
  13. always-show-logoyes
  14. save9001
  15. save30010
  16. save6010000
  17. stop-writes-on-bgsave-erroryes
  18. rdbcompressionyes
  19. rdbchecksumyes
  20. dbfilenamedump.rdb
  21. dir/www/redis/data/redis/6379/
  22. slave-serve-stale-datayes
  23. slave-read-onlyyes
  24. repl-diskless-syncno
  25. repl-diskless-sync-delay5
  26. repl-disable-tcp-nodelayno
  27. slave-priority100
  28. lazyfree-lazy-evictionno
  29. lazyfree-lazy-expireno
  30. lazyfree-lazy-server-delno
  31. slave-lazy-flushno
  32. appendonlyyes
  33. appendfilename"appendonly.aof"
  34. appendfsynceverysec
  35. no-appendfsync-on-rewriteno
  36. auto-aof-rewrite-percentage100
  37. auto-aof-rewrite-min-size64mb
  38. aof-load-truncatedyes
  39. aof-use-rdb-preambleno
  40. lua-time-limit5000
  41. slowlog-log-slower-than10000
  42. slowlog-max-len128
  43. latency-monitor-threshold0
  44. notify-keyspace-events""
  45. hash-max-ziplist-entries512
  46. hash-max-ziplist-value64

4、启动服务

  1. mkdir-p/www/redis/data/redis/6379/
  2. cd../bin/
  3. ./redis-server../conf/redis_6379.conf

5、使用客户端链接

  1. ./redis-cli

判断是否启动成功

「建议收藏」手把手教你从零搭建一个redis服务

6、使用

查看数据

  1. keys*

设置值

  1. setoneKey测试

获取值

  1. getoneKey

「建议收藏」手把手教你从零搭建一个redis服务

二、安装中的碰到的问题和解决办法

问题一:

  1. WARNING:TheTCPbacklogsettingof511cannotbeenforcedbecause/proc/sys/net/core/somaxconnissettothelowervalueof128.

手把手教你从零搭建一个Redis服务

临时解决办法:

  1. echo511>/proc/sys/net/core/somaxconn

永久解决办法

  1. vi/etc/sysctl.conf

「建议收藏」手把手教你从零搭建一个redis服务

在里面添加net.core.somaxconn= 1024 然后执行sysctl -p 就可以永久消除这个warning。

「建议收藏」手把手教你从零搭建一个redis服务

问题二:

  1. WARNINGovercommit_memoryissetto0!Backgroundsavemayfailunderlowmemorycondition.Tofixthisissueadd'vm.overcommit_memory=1'to/etc/sysctl.confandthenrebootorrunthecommand'sysctlvm.overcommit_memory=1'forthistotakeeffect.

「建议收藏」手把手教你从零搭建一个redis服务

可以参考问题一的解决

问题三:

  1. WARNINGyouhaveTransparentHugePages(THP)supportenabledinyourkernel.ThiswillcreatelatencyandmemoryusageissueswithRedis.Tofixthisissuerunthecommand'echonever>/sys/kernel/mm/transparent_hugepage/enabled'asroot,andaddittoyour/etc/rc.localinordertoretainthesettingafterareboot.RedismustberestartedafterTHPisdisabled

「建议收藏」手把手教你从零搭建一个redis服务

执行命令echo never>/sys/kernel/mm/transparent hugepage/enabled

永久解决添加配置文件即可。

  1. vi/etc/rc.local

手把手教你从零搭建一个Redis服务

三、怎么在代码中使用安装的redis呢

需要引用的jar包有:

  1. commons-pool-1.6.jar
  2. jedis-2.9.0.jar

示例代码:

  1. publicstaticvoidmain(String[]args){
  2. //创建redis对象
  3. Stringip="";
  4. Jedisjedis=newJedis(ip,6379);//链接redis
  5. //记录操作个数
  6. jedis.set("name","小明");
  7. System.out.println("name已经赋值");
  8. Stringname=jedis.get("name");
  9. System.out.println("赋值后获取name的值为:"+name);
  10. jedis.del("name");
  11. System.out.println("name已经删除");
  12. StringnameT=jedis.get("name");
  13. System.out.println("删除后获取name的值为:"+nameT);
  14. }
  15. //结果
  16. name已经赋值
  17. 赋值后获取name的值为:小明
  18. name已经删除
  19. 删除后获取name的值为:null

四、设置用户名和密码

1、在配置文件中redis_6379.conf直接添加requirepass 123456

2、通过命令添加

设置密码

  1. #设置密码
  2. configsetrequirepass123456

「建议收藏」手把手教你从零搭建一个redis服务

查看密码

  1. configgetrequirepass

需要验证密码以后才可以查看

「建议收藏」手把手教你从零搭建一个redis服务

测试代码

  1. publicstaticvoidmain(String[]args){
  2. //创建redis对象
  3. Stringip="";
  4. Jedisjedis=newJedis(ip,6379);//链接redis
  5. jedis.auth("123456");
  6. //记录操作个数
  7. jedis.set("name","小明");
  8. System.out.println("name已经赋值");
  9. Stringname=jedis.get("name");
  10. System.out.println("赋值后获取name的值为:"+name);
  11. jedis.del("name");
  12. System.out.println("name已经删除");
  13. StringnameT=jedis.get("name");
  14. System.out.println("删除后获取name的值为:"+nameT);
  15. }
  16. #结果
  17. name已经赋值
  18. 赋值后获取name的值为:小明
  19. name已经删除
  20. 删除后获取name的值为:null

五、应用中碰到的问题

链接被拒绝或者超时问题

「建议收藏」手把手教你从零搭建一个redis服务

redis刚开始配置的ip是默认ip和端口127.0.0.1:6379,这个ip只能服务的本地进行链接。解决办法:

在配置文件中把这个ip给注释

「建议收藏」手把手教你从零搭建一个redis服务

在阿里云中配置安全组

手把手教你从零搭建一个Redis服务

修改好配置文件和安全组以后,可以通过阿里云服务的外网ip和redis的端口访问。

但是呢,又报一个问题,保护模式下拒绝访问。

「建议收藏」手把手教你从零搭建一个redis服务

根据提示修改配置文件redis_6379.conf中属性protected-mode no,并重启服务。

手把手教你从零搭建一个Redis服务

再次测试代码连接正常~

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 11:48
下一篇 2023年5月6日 11:48

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信