ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Python操作Redis(六)

2021-04-05 15:35:42  阅读:210  来源: 互联网

标签:myinfo mylist Python redis Redis 使用 print 操作 conn


一.python安装redis:pip install redis


 


 

二.python连接redis的方式:


 

1.StrictRedis实现大部分的官方命令

2.Redis是StrictRedis的子类,用于向后兼容旧版本的redis

官方推荐使用StrictRedis


三.连接实例:

 


 

1.简单的连接:

import redis
#连接Linux下的redis的方式一:
# conn=redis.Redis(host='192.168.177.137',port=6379,db=0,decode_responses=True)
#参数decode_responses=True表示获得的结果自动进行解码,否则不填增加次参数,手动解码:res.decode('utf-8')
#windows中设置了密码的,需要加上这个参数
# conn=redis.Redis(host='192.168.177.137',password='密码',port=6379,db=0,decode_responses=True)
#连接Linux下的redis的方式二:
conn=redis.StrictRedis(host='192.168.177.137',decode_responses=True)
print(conn)

2.连接池Pool

概述:管理一个redis-server的所有连接,避免每次建立,释放连接的开销,默认每个redis实例都会维护一个自己的连接池,可以直接建立一个连接池,作为参数传递给redis,这样可以实现

多个redis共享一个连接池

#导包
import redis
#创建连接池
pool=redis.ConnectionPool(host='192.168.177.137',port=6379,db=0,decode_responses=True)
#将连接池作为参数传递给redis
conn3=redis.Redis(connection_pool=pool)
print(conn3)

 

3.客户端连接redis设置

在主机上ping了虚拟机的ip,可以ping通,然后用telnet连接对应端口telnet 服务器 6379,发现连接不上

(1)在服务器中查看redis的端口是否开放,如果没有,则需要进行开放:

firewall-cmd --query-port=6379/tcp,返回no,执行firewall-cmd --add-port=6379/tcp,返回success

 (2)修改redis.conf文件,将protected-mode由yes改为no

(3)修改redis.conf文件,将bind 127.0.0.1修改为虚拟机地址bind 服务器ip

(4)重新启动redis,在服务器中连接redis,则使用redis-cli -h host的IP -p 6379

(5)在本地cmb中重新telnet,则可以连接成功:

4.Python操作String(字符串)类型

  连接:

 import redis

conn=redis.Redis(host='192.168.177.137',port=6379,db=0,decode_responses=True)

(1)使用set设置单个key的值

conn.set("name","lisi")

(2)使用get获取单个key的值


print(conn.get("name"))

(3)使用mset设置多个key的值


conn.mset({"sex":"female","hobby":"reding"})

(4)使用mget获取多个key的值


print(conn.mget(["name","sex","hobby"]))

 

 

(5)使用getset设置新值,打印原值


print(conn.getset("name","zhangsan"))

 

 

(6)使用strlen获取值的长度


print(conn.strlen("sex"))

(7)使用append追加值

conn.append("age",20202020)

print(conn.get("age"))

 

(8)使用type获取值的类型


print(conn.type("name"))

 

5.python操作hash(哈希)类型

(1)使用hset设置值


conn.hset("myinfo","name","lixiaoxiao")

(2)使用hget获取值


print(conn.hget("myinfo","name"))



(3)使用hmset设置多个值

 conn.hmset("myinfo",{"age":19,"hobby":"reading","sex":"female"})

(4)使用hmget获取多个值

 

print(conn.hmget("myinfo","name","hobby"))
print(conn.hmget("myinfo",["name","hobby"]))

(5)使用hgetall获取所有值

 print(conn.hgetall("myinfo"))


(6)使用hlen获取键值对的个数

 print(conn.hlen("myinfo"))

 

(7)使用hkes获取所有的key

 print(conn.hkeys("myinfo"))

 

 

(8)使用hvlas获取所有key对应的值

 print(conn.hvals("myinfo"))

 

 

(9)使用hexist判断key是否存在

print(conn.hexists("myinfo","name"))

 

 

(10)使用hde删除指定的key

 conn.hdel("myinfo","sex")

print(conn.hgetall("myinfo"))

 

6.python操作list(列表)类型

(1)使用lpush从头部插入元素

conn.lpush("mylist",10,20,22)
print(conn.lrange("mylist",0,-1))

 

 

(2)使用rpush从尾部插入元素

 conn.rpush("mylist",30,40,42)

print(conn.lrange("mylist",0,-1))

 (3)使用llen获取列表元素的个数

 

print(conn.llen("mylist"))

 

 

 (4)使用linsert在列表的某个值的前后插入一个值

 

 conn.linsert("mylist","before",22,36)

#注意:第一个参数为name,第二个参数为before/after,第三个参数是在某个元素值的前或者后,第四个参数是需要插入的值
print(conn.lrange("mylist",0,-1))

 

 

(5)使用lrem删除list的指定值

conn.lrem("mylist",1,22)
#第二个参数为个数
print(conn.lrange("mylist",0,-1))

 

 

(6)使用lpop移除列表最左侧的元素,并返回

print(conn.lpop("mylist"))

 

 

 

 

(7)使用lindex查询指定索引的的元素,并返回

 print(conn.lindex("mylist",1))

 

 

(8)使用lrange进行切片查询

print(conn.lrange("mylist",0,-1))

 

 


7.python操作set(无序集合)类型

(1)使用sadd进行添加元素到集合中

conn.sadd("myset","a","b","c")
conn.sadd("yourset","b","c","d")

 

(2)使用smembers进行查询集合中的元素

 print(conn.smembers("myset"))

print(conn.smembers("yourset"))

 

 

(3)使用scard进行计算集合中的元素个数

 print(conn.scard("myset"))

print(conn.scard("yourset"))

 

 

(4)使用sdiff进行计算两个集合之间的差集

 print(conn.sdiff("myset","yourset"))

 

 

(5)使用sinter进行计算两个集合之间的交集

 print(conn.sinter("myset","yourset"))


 

 

(6)使用sismember检查当前元素是否存在集合之中

print(conn.sismember("myset","d"))

print(conn.sismember("yourset","d"))

 

 

(7)使用spop从集合右侧删除一个元素

 conn.spop("yourset")

print(conn.smembers('yourset'))

 

 

 

 


8.python操作zset(有序集合)类型

(1)使用zadd进行添加元素到有序集合中

 conn.zadd("zset1",{"a":1,"b":2,"c":3,"d":4})

 

(2)使用zrange返回有序集合范围内的元素

 print(conn.zrange("zset1",0,-1))


 

 

(3)使用zcard进行计算有序集合中的元素个数

 print(conn.zcard("zset1"))


 

 

(4)使用zcount返回有序集合中min--max权重之间的个数

 print(conn.zcount("zset1",2,4))


 

 

(5)使用zscore返回对应权重的元素

print(conn.zscore("zset1","d"))

 

 

 

(6)使用zrem删除有序集合的指定元素

 conn.zrem("zset1","c")

print(conn.zrange("zset1",0,-1))

 

 

 

标签:myinfo,mylist,Python,redis,Redis,使用,print,操作,conn
来源: https://www.cnblogs.com/smilecindy/p/14540985.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有