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文件夹

 

 

 

 

posted @ 2019-07-17 11:17  Mezhou  阅读(814)  评论(0编辑  收藏  举报