通过python操作redis(windows)

注意在连接之前要确保 redis 服务已经安装。

redis 模块  

Python 要使用 redis,需要先安装 redis 模块。如果要做数据导入/导出操作的话,还需要安装RedisDump。

Redis 和 StrictRedis 
RedisPy库提供两个类Redis和StrictRedis来实现Redis的命令操作。 

StrictRedis实现了绝大部分官方的命令,参数也一一对应,比如set()方法就对应Redis命令的set方法。而Redis是StrictRedis的子类,它的主要功能是用于向后兼容旧版本库里的几个方法。为了做兼容,它将方法做了改写,比如lrem()方法就将value和num参数的位置互换,这和Redis命令行的命令参数不一致。

官方推荐使用StrictRedis,所以我们也用StrictRedis类的相关方法作演示。

连接Redis :

注意:打代码的过程要小心谨慎,注意中英文切换,一面造成代码错误

from redis import StrictRedis
 
redis = StrictRedis(host='localhost', port=6379, db=0,password=None)#创建连接
redis.set('name','test')
print(redis.get('name'))

这里我们传入了Redis的地址、运行端口、使用的数据库和密码信息。在默认不传的情况下,这4个参数分别为localhost63790None。首先声明了一个StrictRedis对象,接下来调用set()方法,设置一个键值对,然后将其获取并打印。 

运行结果如下:

或者可以使用代码语句,也能返回同样的结果两不误。

注意:打代码的过程要小心谨慎,注意中英文切换,一面造成代码错误

redis.get('name')

上面的结果表明我们链接成功,可以开始执行set()和get()操作了!

ConnectionPool 连接池 

还可以使用ConnectionPool来连接,示例如下:

注意:打代码的过程要小心谨慎,注意中英文切换,一面造成代码错误

from redis import StrictRedis, ConnectionPool
 
pool = ConnectionPool(host='localhost', port=6379, db=0, password=None)
redis = StrictRedis(connection_pool=pool)

这样的连接效果是一样的。StrictRedis内其实就是用host和port等参数又构造了一个ConnectionPool,所以直接将ConnectionPool当作参数传给StrictRedis也一样。

另外,ConnectionPool还支持通过URL来构建。URL的格式支持有如下3种:

redis://[:password]@host:port/db
rediss://[:password]@host:port/db
unix://[:password]@/path/to/socket.sock?db=db

键操作 

基本命令 string字符串

下表总结了键的一些字符串判断和操作方法。

应用示例 
假定我们对CSDN博文需要记录点击次数。例如每个文章都要记录点击次数,而点击次数比评论的次数的多得多。如果使用关系数据库来存储点击,可能存在大量的行级锁争用。所以,点击数的增加使用redis的INCR命令最好不过了。 

当redis服务器启动时,可以从关系数据库读入点击数的初始值(某篇文章被访问了10000次)

注意:打代码的过程要小心谨慎,注意中英文切换,一面造成代码错误

redis.set("visit:blog.csdn.net/sinat_20471177/article:totals", 10000)
redis.get("visit:blog.csdn.net/sinat_20471177/article:totals")

 

每当有一个页面点击,则使用INCR增加点击数即可。 

注意:打代码的过程要小心谨慎,注意中英文切换,一面造成代码错误

redis.incr("visit:blog.csdn.net/sinat_20471177/article:totals")
redis.incr("visit:blog.csdn.net/sinat_20471177/article:totals")

访问了两次后出现的结果: 

基本命令 hash散列 :

hset单个增加\修改结果如下:

hset(name, key, value)

向键为name的散列表中添加映射(key:value)(不存在,则创建;否则,修改) 

例如 :

注意:打代码的过程要小心谨慎,注意中英文切换,一面造成代码错误

#redis是前面创建的链接
redis.hset("hash1", "k1", "v1")
redis.hset("hash1", "k2", "v2")
print(redis.hkeys("hash1")) # 取hash中所有的key
print(redis.hget("hash1", "k1"))    # 单个取hash的key对应的值
print(redis.hmget("hash1", "k1", "k2")) # 多个取hash的key对应的值

返回的结果为: 

hsetnx(name, key, value) 当name对应的hash中不存在当前key时则创建(相当于添加) 

例如: 

注意:打代码的过程要小心谨慎,注意中英文切换,一面造成代码错误

redis.hsetnx("hash1", "k2", "v3") #前面存在k2是没办法修改的, 只能新建
print(redis.hget("hash1", "k2"))

返回的结果为:

文章到这里就结束啦!

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值