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