如何用Python操作Redis
时间:2019-02-14
本文章向大家介绍如何用Python操作Redis,主要包括如何用Python操作Redis使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
想要用Python操作Redis,就要掌握虚拟环境redis安装以及开启Redis服务器的命令.
具体操作如下:
-一. 掌握虚拟环境redis安装
安装包
-
第一种:进入虚拟环境py_django,联⽹安装包redis
pip install redis
-
第二种:进⼊虚拟环境py_django,联⽹安装包redis
easy_install redis
-
第三种:到中⽂官⽹-客户端下载redis包的源码,使⽤源码安装
一步步执行 wget https://github.com/andymccurdy/redis-py/archive/master.zip
unzip master.zip
cd redis-py-master
sudo python setup.py install
调用模块
-
引用模块
from redis import StrictRedis
-
这个模块中提供了StrictRedis对象(Strict严格),用于连接redis服务器,并按照不同类型提供了不同方法,进行交互操作
二.了解Redis服务器端和客户端的命令
服务器端
- 服务器端的命令为redis-server
- 可以使用help查看帮助文档
> redis-server --help
- 推荐使用服务的方式管理redis服务
- 启动
> sudo service redis start
- 停止
> sudo service redis stop
- 重启 sudo service redis restart
- 习惯
> ps -ef|grep redis 查看redis服务器进程
> sudo kill -9 pid 杀死redis服务器
** sudo redis-server /etc/redis/redis.conf 指定加载的配置文件**
# 客户端
- 客户端的命令为redis-cli
- 可以使用help查看帮助文档
redis-cli --help
- 连接redis
redis-cli
- 测试命令
ping
- 切换数据库
- 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select n
三.Python操作Redis:
准备工作:
- 使用pycharm新建 redis目录
- 创建redis_string.py文件
String字符串类型:
#1.导入StrictRedis
from redis import StrictRedis
if __name__ == '__main__':
try:
#2.创建对象,连接到redis服务器
sr = StrictRedis()
#string方法如下:
#设置键值
res = sr.set('name','wangwu')
print(res)
#获取值:
res = sr.get('name')
print(res)
#设置多个键值:
res = sr.mset({'age':'18','gender':'false'})
print(res)
#追加值:
res = sr.append('name','zi')
print(res)
#删除键值:
res = sr.delete('name')
print(res)
#判断key是否存在
res = sr.exists('name')
except Exception as error:
print(error)
hash哈希类型:
#导入StritRedi
from redis import StrictRedis
if __name__ == '__main__':
try:
#创建对象,连接到redis服务器
hash = StrictRedis()
#hash方法如下:
#1.设置单个属性:hset key field value
ha = hash.hset('user','name','hww')
# print(ha)
#2.设置多个属性:hmset key field1 value1 field2 value2
ha = hash.hmset('h1',{'name':'anqi','gender':'true'})
# print(ha)
#3.获取制定键所有的属性:hkeys key
ha = hash.hkeys('h1')
print(ha)
#4.获取一个属性的值:hget key field
ha = hash.hget('h1','name')
print(ha)
#5.获取多个属性的值:hmget key field1 field2
ha = hash.hmget('h1','name','gender')
print(ha)
#6.获取所有属性的值:hvals key
ha = hash.hvals('h1')
print(ha)
#7.删除:hdel key field1 field2 ...
ha = hash.delete('user','name')
print(ha)
except Exception as error:
print("error")
list列表类型:
#导入StritRedis
from redis import StrictRedis
if __name__ == '__main__':
try:
#创建对象,连接到redis服务器
hash = StrictRedis()
#hash方法如下:
#1.设置单个属性:hset key field value
ha = hash.hset('user','name','hww')
# print(ha)
#2.设置多个属性:hmset key field1 value1 field2 value2
ha = hash.hmset('h1',{'name':'anqi','gender':'true'})
# print(ha)
#3.获取制定键所有的属性:hkeys key
ha = hash.hkeys('h1')
print(ha)
#4.获取一个属性的值:hget key field
ha = hash.hget('h1','name')
print(ha)
#5.获取多个属性的值:hmget key field1 field2
ha = hash.hmget('h1','name','gender')
print(ha)
#6.获取所有属性的值:hvals key
ha = hash.hvals('h1')
print(ha)
#7.删除:hdel key field1 field2 ...
ha = hash.delete('user','name')
print(ha)
except Exception as error:
print("error")
set无序集合:
from redis import StrictRedis
if name == ‘main’:
try:
#1.创建对象,连接到redis服务:
set = StrictRedis()
#2.设置无序集合:sadd key member1 member2...
res = set.sadd('set1','zhangsan','lisi','wangwu')
print(res)
#3.获取所有元素:smembers('key')
res = set.smembers('set1')
print(res)
#4.删除指定元素:srem key member
res = set.srem('set1','lisi')
print(res)
except Exception as error:
print("error")
zset有序列表集合:
from redis import StrictRedis
if __name__ == '__main__':
try:
#1.创建对象,连接redis服务:
set = StrictRedis()
#2.增加有序集合:
#zadd python调用的方法跟redis原生的方法不一样,redis是先权重后元素,python则是先元素后权重
res = set.zadd('zset1',{'zhangsan':1,'lisi':2,'wangwu':3})
# print(res)
#3.获取指定范围内的元素:zrange key start stop
res = set.zrange('zset1',0,-1)
print(res)
#4.获取权重(score)值在min和max之间的成员:zrangebyscore('key',min,max)
res = set.zrangebyscore('zset1',2,3)
print(res)
#5.获取成员member的权重score值:
res = set.zscore('zset1','zhangsan')
print(res)
#6.删除指定元素:zrem key member
res = set.zrem('zset1','wangwu')
print(res)
#7.删除权重所对应的成员元素:zremrangebyscore('key',min,max)
res = set.zremrangebyscore('zset1',2,3)
print(res)
except Exception as error:
print("error")
- Android权限机制,你真的了解吗?
- Window环境下搭建Vue.js开发环境
- ios开发之xcode环境介绍
- CIRCOS增加热图、点图、线图和区块属性
- github pages + Hexo + 域名绑定搭建个人博客
- 使用ES6新特性开发微信小程序(3)——类
- linux学习第四篇:克隆虚拟机以及两台linux机器相互登录
- 前端开发的工具化与工程化
- 使用ES6新特性开发微信小程序(4)
- JavaScript闭包详解
- Spark你一定学得会(一)No.7
- iOS 滚动视图的复用问题解决方案
- 二叉排序树(BSTree)关于查找算法结合
- 使用ES6新特性开发微信小程序(5)——内建对象的变化
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- MongoDB中的CURD操作
- 高可用的Redis主从复制集群,从理论到实践
- SpringBoot实战(一):使用Lombok简化你的代码
- Kubernetes Ingress入门指南和实践练习
- [译]Go语言常用文件操作汇总
- Redis常用数据类型对应的数据结构
- 详解卷积中的Winograd加速算法
- SpringMVC源码学习(一) - DispatcherSerlet和相关组件
- SpringMVC源码学习(二) - DispatcherServlet和相关组件
- 微服务使用 Hystrix 实现服务降级
- SpringMVC源码学习(三) - 请求处理的流程
- Hadoop框架:集群模式下分布式环境搭建
- 微服务 Hystrix 实现服务熔断
- 微服务 Gateway 的基本配置
- 有赞营销逆向域的探索与实践