zoukankan      html  css  js  c++  java
  • redis安装部署和使用

     一、redis安装配置

    链接:https://pan.baidu.com/s/1cntWW3jvvVa3Gy9e-e_E6w
    提取码:7158

    若src中没有redis-server,需要编译的,先tar -zxvf XXXX 解压,进入第一层目录,有redis.config,执行make命令进行编译,src目录下就会有redis-server;

     启动命令:cd src 目录下   执行nohub ./redis-server ../redis.conf &

    ps -ef|grep redis 查看是否启动成功;默认是6379端口号

    二、远程连接设置

     参考:https://www.cnblogs.com/lijIT/p/11143634.html

    #停止redis

    ps -ef |grep redis 

    kill -9 PID

    #修改配置文件redis安装路径下的redis.conf文件

    参考:https://blog.csdn.net/qq_35992900/article/details/82950157

    将第138行的daemonize no修改为daemonize yes即可(这个我没改也好使)

     将第70行的bind注释,第90行将protected-mode改为no

    带配置文件后台启动redis:

    cd 到redis的src目录下:

    执行:nohub ./redis-server ../redis.conf &

    用客户端连接:

    三、dos操作清空key值:

    cd到redis的src下:

    执行  ./redis-cli -p 6379(port,默认的话-p后面的不用带)

    flushall

    exit

    查看所有key值:keys *

    四、windows上同时启动多个redis方法:

     

    参考:https://www.cnblogs.com/wangxingjian/p/12601592.html

    五、linux安多个redis

    参考:https://blog.csdn.net/aitangyong/article/details/52055932

     六、redis在python中使用

    连接:

    import redis
    r = redis.Redis(host='127.0.0.1',
                    password='123456',
                    port=6379,
                    db=14,
                    decode_responses=True
                    )
    #decode_responses=True 自动将bytes转字符串
    
    

    字符串类型取值和添加值:

    print(r.get('name').decode())#decode 将bytes类型转字符串 zjr
    print(r.get('name').decode().encode())#decode 将字符串转bytes类型  b'zjr'
    #由于连接中已经设置自动将bytes类型转字符串,所以上面的加解密不用添加
    r.set('age',18)
    r.set('session','hjhhj^^&YFRERDrtfygy6',10)#10s后自动删除key  TTL
    r.set('goods','{"name":"test","price":"35"}')

    hash类型取值和添加值:

    r.hset('students','zjr','{"age":"15","addr":"bk"}')
    r.hset('students','zjr1','errrr')
    
    print(r.hget('students','zjr1'))
    print(r.hgetall('students'))

     管道:

    p = r.pipeline()#建立管道
    p.set('test','23324')
    p.set('test','23324')
    p.hset('test1','23324','aaaAA')
    p.execute()#执行,会比直接执行快很多,批量操作选择管道

    练习两个redis中值的迁移:

    #a服务器 -》迁移
    #b服务器,redis
    
    
    r = redis.Redis(host='ip1',
                    password='123456',
                    port=6379,
                    db=14,
                    decode_responses=True
                    )
    r2 = redis.Redis(host='ip2',
                    password='123456',
                    port=6378,
                    db=14,
                    decode_responses=True
                    )
    
    p = r2.pipeline()
    
    for k in r.keys():
        key_type = r.type(k)
        if key_type == 'string':
            value = r.get(k)
            p.set(k,value)
        elif key_type=='hash':
            hash_data = r.hgetall(k) #{'xx':xxx}
            for filed,data in hash_data.items():
                p.hset(k,filed,data)
    
    p.execute()

    其它:

    #删除
    r.delete('name')
    r.hdel('students','zjr1')
    print(r.flushall())
    print(r.flushdb(0))
    
    #设置过期时间
    r.expire('age',15)
    
    print(r.keys())
    
    #模糊匹配
    print(r.keys('*t*'))
    print(r.type('e'))
    print(r.type('students'))
    
    print(r.exists('students'))#存在 1
    print(r.exists('students2'))#不存在 0

    r.set('product:apple','{"price":"2343"}')#product文件夹
     
  • 相关阅读:
    Nmap 網路診斷工具基本使用技巧與教學
    你必须了解的基础的 Linux 网络命令
    SQLAlchemy 一对多
    Linux统计文件行数
    网络拥塞控制(三) TCP拥塞控制算法
    JavaSe:Properties文件格式
    ZooKeeper:第三方客户端 ZKClient
    ab
    JDWP Agent
    ZooKeeper:数据模型
  • 原文地址:https://www.cnblogs.com/Mezhou/p/11199830.html
Copyright © 2011-2022 走看看