三十四 SpringBoot整合Spring Data Redis-安装redis

redis版本3.2.11

运行环境:linux

一 安装redis

虚拟机设置连接外网:http://www.jb51.net/article/103979.htm

使用VirtualBOX自带的共享文件夹功能:https://blog.csdn.net/a962804835/article/details/72820355

  • 下载获得redis-3.2.11.tar.gz后将它放入我们的linux目录/opt
  • /opt目录下,解压命令:tar -zxvf redis-3.2.11.tar.gz
  • 解压完成后出现文件夹:redis-3.2.11
  • 进入目录:cd redis-3.2.11
  • 在redis-3.2.11目录下执行make命令 :运行make命令时出现错误解析:
    • 安装gcc
      • 能上网:yum install gcc-c++
  • 二次make
  • jemalloc/jemalloc.h:没有哪个文件或目录:运行make distclean之后再make
  • Redis Test(可以不用执行)
  • 如果make完成后继续执行make install
  • 查看默认安装目录:usr/local/bin
    • redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何:服务启动起来后执行
    • redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
    • redis-check-dump:修复有问题的dump.rdb文件
    • redis-cli:客户端,操作入口
    • redis-sentinel:redis集群使用
    • redis-server:Redis服务器启动命令
  • 启动
    • 修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动(注意:先备份,再修改)

                    

                    

                    

                    

                    shift + $:跳转到行尾

        i:开始编辑,进入编辑模式

        esc:编辑完,进入命令模式

        :wq!:强制保存并退出

  • 将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf
  • 启动

查看redis进程有没有起来:ps -ef|grep redis或ps aux|grep redis

                    

          启动:redis-server /myredis/redis.conf

                    

  • 连通测试:默认端口6379

                    

  • /usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件

永远的helloworld

  • 关闭
    • 单实例关闭:redis-cli shutdown
    • 多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
  • 切换数据库:select 7

二 redis工具

Redis Desktop Manager

连接不上,虚拟机中能连上redis,而远程连不上虚拟机中的redis:

2.1 关闭防火墙

查看防火墙状态:firewall-cmd --state

CentOS 7.0默认使用的是firewall作为防火墙,
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
参照:https://blog.csdn.net/qq_15030351/article/details/79733806 

2.2 redis绑定设置

bind 选项配置注释掉,就是全部
参照:https://blog.csdn.net/wangzhiyou85/article/details/80461579 

问题:虚拟机ping不通主机,但是主机能ping通虚拟机,导致主机redis客户端还是连不上redis服务器。

解决:参照https://www.jianshu.com/p/c5acd676e353

修改ip:

vim /etc/sysconfig/network-scripts/ifcfg-eth1

#重启网卡
systemctl restart network.service
#重启系统
reboot

 

er

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中使用Spring Data Redis进行Redis Geo操作,需要在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.6.0</version> </dependency> ``` 然后在application.properties文件中配置Redis相关信息: ```properties # Redis spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= ``` 接下来,我们需要创建一个RedisGeoService来进行Geo操作: ```java @Service public class RedisGeoService { private final RedisTemplate<String, String> redisTemplate; public RedisGeoService(RedisTemplate<String, String> redisTemplate) { this.redisTemplate = redisTemplate; } /** * 添加地理位置信息 * * @param key 键 * @param longitude 经度 * @param latitude 纬度 * @param member 成员 * @return Long */ public Long add(String key, double longitude, double latitude, String member) { Point point = new Point(longitude, latitude); return redisTemplate.opsForGeo().add(key, point, member); } /** * 获取两个地理位置的距离 * * @param key 键 * @param member1 成员1 * @param member2 成员2 * @param unit 距离单位 * @return Distance */ public Distance distance(String key, String member1, String member2, Metric unit) { return redisTemplate.opsForGeo().distance(key, member1, member2, unit); } /** * 获取指定成员的地理位置 * * @param key 键 * @param members 成员 * @return List<Point> */ public List<Point> position(String key, String... members) { return redisTemplate.opsForGeo().position(key, members); } /** * 获取指定地理位置附近的成员 * * @param key 键 * @param longitude 经度 * @param latitude 纬度 * @param radius 半径 * @param unit 距离单位 * @return GeoResults<GeoLocation<String>> */ public GeoResults<GeoLocation<String>> nearBy(String key, double longitude, double latitude, double radius, Metric unit) { Circle circle = new Circle(longitude, latitude, new Distance(radius, unit)); GeoRadiusCommandArgs args = GeoRadiusCommandArgs.newGeoRadiusArgs().sortAscending(); return redisTemplate.opsForGeo().radius(key, circle, args); } } ``` 上述代码中,我们使用了RedisTemplate来进行Redis操作。RedisTemplate是Spring Data Redis提供的核心组件,用于执行Redis命令。 在RedisGeoService中,我们定义了四个方法来进行Geo操作: - add方法:添加地理位置信息。 - distance方法:获取两个地理位置的距离。 - position方法:获取指定成员的地理位置。 - nearBy方法:获取指定地理位置附近的成员。 使用Spring Boot和Spring Data Redis进行Geo操作非常方便,只需要定义一个RedisGeoService,并注入RedisTemplate即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值