redis常用命令、python redis客户端

redis Python客户端

redis-py

  • 源码地址:https://github.com/WoLpH/redis-py
  • redis命令:https://redis.io/commands/
  • Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
1、字符串
  • set --Redis中设置值,默认不存在则创建,存在则修改,批量设置mset
  • get --获取键值,批量获取mget
  • strlen --键值长度
  • incr --自增,decr --自减
  • append --键值追加内容
#redis_py客户端提供两个class:StrictRedis、Redis;如果你已经安装了hiredis模块,redis-py默认会尝试使用HiredisParser,
# Hiredis可以使得redis客户端解析服务端响应内容的速度提升10倍,git上有介绍,
# 所以我安装了hiredis(https://pypi.org/project/hiredis/)https://github.com/redis/hiredis-py
import redis
#decode_responses=True --redis取出的是字节,这个改成字符串
r = redis.StrictRedis(host="1.1.1.1",port=1111,password="11",decode_responses=True)
#字符串类型常用命令
r.set('foo', 'bar',ex = 10)
r.append("foo","zzz")
#判断键是否存在,return 1 for true and 0 for false
print(r.exists("foo"))
#ttl--剩余过期时间,生存时间
print(r.get("foo"),r.ttl('foo'))
#清除生存时间,变成永久key
r.persist("foo")
#没有设置生存时间返回-1
print(r.ttl("foo"))
r.delete("foo")
2、hash
  • 一般h开头
import redis
r = redis.StrictRedis(host="",port=1111,password="",decode_responses=True)
#hash类型常用命令
#Redis 4.0.0开始弃用HMSET,请使用HSET
r.hset("myhash","field1","hello")
r.hset("myhash","aa","aaa")
r.hset("myhash","bb","bbb")
#设置key的生存时间
r.expire("myhash",10)
print(r.hget("myhash","field1"),r.ttl("myhash"))
li=["aa","bb"]
#批量get
print(r.hmget("myhash",li))
#hexists--hash中key是否存在,hgetall获取所有键值对,hlen--hash有多少个key,hkeys---name下所有的key,hvals--name下所有的value
print(r.hexists("myhash","aa"),r.hgetall("myhash"),r.hlen("myhash"),r.hkeys("myhash"),r.hvals("myhash"))
#删除hash键值对
r.hdel("myhash","aa")
3、list
  • lpush - 从左边添加值;lpushx - 从左边添加,只能添加已有name的值
  • rpush,rpushx - 从右边添加
  • linsert - 在某个值前面或者后面添加值
  • lset - 根据索引修改值
  • llen - 查list的长度
  • lrange - 根据索引开始与结束值获取list的值
  • lindex - 根据索引获取list的值
  • lrem - 删除list的值,其中的数值表示删除多少个值,0就是删除所有list中的这个值,1是一个,2是二个(从左到右)
  • ltrim - 删除除从索引开始值到结束值之外的所有值
  • lpop - 删除左边第一个值并返回,rpop就是右边的
import redis
r = redis.StrictRedis(host="",port=,password="",decode_responses=True)
#list类型常用命令
r.lpush("mylist",11,22,33,44,55,66,77,88,99)
r.lpushx("mylist","**")
print(r.lrange("mylist",0,1))
r.rpush("mylist",33)
r.linsert("mylist","before","11","00")
r.linsert("mylist","after","33","44")
r.lset("mylist",0,"00")
print(r.llen("mylist"),r.lrange("mylist",0,r.llen("mylist")-1),r.lindex("mylist",0))
r.lrem("mylist",0,"00")
r.ltrim("mylist",0,5)
r.expire("mylist",10)
print(r.ttl("mylist"),r.lpop("mylist"),r.rpop("mylist"),r.lrange("mylist",0,r.llen("mylist")-1))
r.delete("mylist")
4、set

集合不能出现重复的数据,无序的

  • sadd - 添加
  • scard - 获取集合的长度
  • smembers - 获取集合所有值,返回的是集合{}
  • sscan - 获取所有值,返回的是元组
  • sscan_iter - 获取所有值,返回迭代器
  • sdiff - 差值,前面减去后面,sdiffstore - 减去保存在第三个集合中
  • sinter - 交集,两个集合中都存在的,sinterstore - 交集结果保存在第三个集合中
  • sunion - 并集,sunionstore
  • smove -移动元素
  • sismember - 判断元素是否存在
  • spop - 因为是无序的集合,所以是随机删除一个要元素
  • srem - 删除元素
import redis
r = redis.StrictRedis(host="",port=,password="",decode_responses=True)
#set类型常用命令
r.sadd("myset","aa","bb","cc")
r.sadd("myset2","aa","dd")
print(r.scard("myset"),r.smembers("myset"),r.sscan("myset"),r.sdiff("myset","myset2"),r.sinter("myset","myset2"))
r.smove("myset2","myset","dd")
print(r.sunion("myset","myset2"),r.sismember("myset","dd"),)
r.spop("myset")
r.srem("myset","bb")
for i in r.sscan_iter("myset"):
    print(i)
#keys是模糊查询所有的key
print(r.keys("myset*"))
#删除模糊查询出来的所有key
for i in r.keys("myset*"):
    r.delete(i)
5、有序集合

有序集合的元素是包括值与分数的,分数用来排序

  • zadd - 添加
  • zcard - 集合长度
  • zrange - 输出集合值,withscores是否输出分数,默认从小到大排序输出;zrevrange 从大到小排序
  • zscan - 从小到大输出所有元素,zscan_iter 迭代器
  • zrangebyscore - 指定分数输出元素,zrevrangebyscore
  • zcount - 指定分数内有多少个元素
  • zrank - 输出元素的索引
  • zscore - 元素的分数
  • zincrby - 增加元素的分数
  • zrem - 输出元素,zremrangebyrank 根据索引删除,zremrangebyscore 根据分数删除
import redis
r = redis.StrictRedis(host="",port=,password="",decode_responses=True)
#zset类型常用命令
set_value = {"aa":1,"bb":2,"cc":3,"dd":8,"ee":23}
r.zadd("myzset",set_value)
print(r.zcard("myzset"),r.zrange("myzset",0,-1,withscores=True),r.zrevrange("myzset",0,-1),r.zscan("myzset"))
print(r.zrangebyscore("myzset",0,3),r.zrevrangebyscore("myzset",3,0),r.zcount("myzset",0,3),r.zrank("myzset","ee"),
      r.zscore("myzset","bb"))
r.zincrby("myzset",6,"bb")
r.zrem("myzset","ee")
r.zremrangebyrank("myzset",0,0)
r.zremrangebyscore("myzset",0,3)
for i in r.zscan_iter("myzset"):
    print(i)
r.delete("myzset")
公用常用命令
  • keys(“myset*”) 模糊查询所有key
  • type 查询key的类型
  • exists 查询key是否存在
  • delete 删除key
  • expire 设置key的生存时间
  • ttl 查询key的剩余生存时间
  • rename 重命名
  • persist 设置成永久key
如何查询redis命令使用方法
  • 官网:https://redis.io/commands/
    输入命令查询
    在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值