zoukankan      html  css  js  c++  java
  • linux上部署redis实现与Python上的redis交互(有坑)

    1.概念

      Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件

    2.linux安装redis

    2.1yum源安装redis(不推荐)

    #前提得配置好阿里云yum源,epel源
    #查看是否有redis包
    yum list redis
    #安装redis(一般在opt文件下)
    yum install redis -y
    #安装好,启动redis
    systemctl start redis

    redis-cli    #redis 客户端工具
    #进入交互式环境后,执行ping,返回pong表示安装成功
    127.0.0.1:6379> ping
    PONG

    2.2源码安装(编译安装)redis

      这里推荐使用编译安装,我们可以统一安装路径,一般linux软件约定安装目录在/opt/下面

      编译源码安装可以根据需求,安装最新的版本

    1.下载redis源码
    wget http://download.redis.io/releases/redis-4.0.10.tar.gz
    2.解压缩
    tar -zxf redis-4.0.10.tar.gz
    3.切换redis源码目录
    cd redis-4.0.104.编译源文件
    make 
    5.编译好后,src/目录下有编译好的redis指令
    6.make install 安装到指定目录,默认在/usr/local/bin

    2.3 redis文件配置(避免运行Python代码下报错,一定要进行配制)

    vim redis.conf

    按向下箭头找见下面白色的ip改成0.0.0.0:

    把protected-mode 改为no

    找到daemonize,可以看到reids默认情况下不是后台驻留程序,(将daemonize属性改为yes,表明需要在后台运行,这个根据你个人情况来搞,如果选择后台驻留,建议设一个密码)

    # By default Redis does not run as a daemon. Use 'yes' if you need it.
    # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
    # daemonize no
    # 修改成:
    daemonize yes

    2.4.启动redis服务端 ----->坑在这里

     方式一,直接运行(不推荐)

    redis-server

     方式二,进入redis文件,指定加载文件运行------>配制好我们的文件后建议使用这个运行,像我使用其他的去和Python链接就会报错

    2.5使用redis服务端(重启一个服务)

    #执行客户端命令即可进入
    redis-cli  
    #测试是否连接上redis
    127.0.0.1:6379 > ping
    返回pong代表连接上了

    2.5其他命令

    查看进程
    
    ps -ef|grep redis
    
    杀死进程
    
    ps -ef | grep redis | awk ‘{print $2}’ | xargs kill -9
    
    指定进程号删除
    
    kill 2337
    
    关闭服务端
    
    redis-cli shutdown

    2.6关闭防火墙(重要)  --->这里我嫌麻烦给永久关闭了

      在Python中运行时有时候会报相关错误,要把防火墙关掉

    暂时关闭防火墙:(立即生效,开机重启,会重新打开) 
    service iptables stop 
    永久关闭防火墙(关机重启才会生效) 
    chkconfig iptables off

    2.7redis设置密码

    2.7.1方法一:(不推荐,因为找不到这一行在哪)

    1.在配置未检redis.conf中找导如下行:

    #requirepass foobared    ------>(这里要说的是,在文件里面找了好久没找见啊)

    去掉前面的密码,并自己设置密码

    requirepass mypassword
    然后重启,这里不多演示了,想学这一步查看前人笔记
    2.7.2方法二:(简单好用)

    先启动我们的redis

    双击脚本,再打开一个客户端

    [root@learning ~]# redis-cli
    127.0.0.1:6379> config set requirepass mima
    OK
    127.0.0.1:6379> auth mima
    OK

    查看密码(登陆后才能查看)

    关闭redis服务端(必须登录之后才行)

    注意,这里虽然这么能用,但是我测试好像是一次性的,你关闭后下次再次登录密码就失效了,但是一般在云端不会来回开关的,所以也不影响大家的使用,如果想永久使用,在配制文件中进行设置就ok,可以参考链接博客。

    3.python安装与运行redis

    导入包

    pip3 install redis

    测试

    import redis
    conn = redis.Redis(host='192.168.88.128',port=6379)
    
    conn.hset('xx','k1','konan')
    conn.hset('xx','k2','learning')
    
    n1 = conn.hget('xx','k1').decode('utf-8')
    n2 = conn.hget('xx','k2').decode('utf-8')
    print(n1,n2)

    效果:

    4.总结

      如果在Python运行过程中或报错,一般就是配置文件以及防火墙的问题,其他问题暂时本人没有遇到

      #####

      还要注意,对于刚开始学的同学,安装完一定要配置密码,现在有许多挖矿软件会自动扫描到云端的redis,为了安全起见一定要设置好密码

  • 相关阅读:
    Junit单元测试
    win7的6个网络命令
    WOJ1024 (POJ1985+POJ2631) Exploration 树/BFS
    WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp
    woj1019 Curriculum Schedule 输入输出 woj1020 Adjacent Difference 排序
    woj1018(HDU4384)KING KONG 循环群
    woj1016 cherry blossom woj1017 Billiard ball 几何
    woj1013 Barcelet 字符串 woj1014 Doraemon's Flashlight 几何
    woj1012 Thingk and Count DP好题
    woj1010 alternate sum 数学 woj1011 Finding Teamates 数学
  • 原文地址:https://www.cnblogs.com/LearningOnline/p/9456806.html
Copyright © 2011-2022 走看看