Python操作Redis(六)
一.python安装redis:pip install redis
二.python连接redis的方式:
1.StrictRedis实现大部分的官方命令
2.Redis是StrictRedis的子类,用于向后兼容旧版本的redis
官方推荐使用StrictRedis
三.连接实例:
1.简单的连接:
import redis |
2.连接池Pool
概述:管理一个redis-server的所有连接,避免每次建立,释放连接的开销,默认每个redis实例都会维护一个自己的连接池,可以直接建立一个连接池,作为参数传递给redis,这样可以实现
多个redis共享一个连接池
#导包 |
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的值
|
(3)使用mset设置多个key的值
|
(4)使用mget获取多个key的值
![]()
|
(5)使用getset设置新值,打印原值
![]()
|
(6)使用strlen获取值的长度
![]() |
(7)使用append追加值
conn.append("age",20202020) print(conn.get("age"))
|
(8)使用type获取值的类型
|
5.python操作hash(哈希)类型
(1)使用hset设置值
|
(2)使用hget获取值
![]() |
(3)使用hmset设置多个值
conn.hmset("myinfo",{"age":19,"hobby":"reading","sex":"female"}) |
(4)使用hmget获取多个值
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) ![]()
|
(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,第三个参数是在某个元素值的前或者后,第四个参数是需要插入的值 |
(5)使用lrem删除list的指定值
conn.lrem("mylist",1,22) ![]()
|
(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") |
(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)) ![]()
|