怎么使用Python操作Redis数据库


本篇内容主要讲解“怎么使用Python操作Redis数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python操作Redis数据库”吧!Redis是一个开源的基于内存也可持久化的Key-Value数据库,采用ANSI C语言编写。它拥有丰富的数据结构,拥有事务功能,保证命令的原子性。由于是内存数据库,读写非常高速,可达10w/s的评率,所以一般应用于数据变化快、实时通讯、缓存等。但内存数据库通常要考虑机器的内存大小。Redis有16个逻辑数据库(db0-db15),每个逻辑数据库项目是隔离的,默认使用db0数据库。若选择第2个数据库,通过命令 select 2 ,python中连接时可以指定数据库。String-字符串List-列表Hash-哈希Set-集合ZSet-有序集合Bitmap-位图python中我们使用redis-py库来操作Redis数据库,下面将着重介绍。前提:需安装Redis数据库,若没安装点这里第一种方式:普通第二种方式:连接池redis中字符返回值类型都是字节(bytes)类型在redis中,一个键对应一个值1.String set 设置单个键值set(name, value, ex=None, px=None, nx免费云主机域名=False, xx=False)ex:过期时间(秒),时间到了后redis会自动删除px:过期时间(毫秒),时间到了后redis会自动删除。ex、px二选一即可nx:如果设置为True,则只有name不存在时,当前set操作才执行xx:如果设置为True,则只有name存在时,当前set操作才执行2.String get 获取单个值3.String mset 设置多个键值mset(*args, **kwargs)或者4.String mget 获取多个值mget(keys, *args)5.String getset 给已有的键设置新值,并返回原有的值getset(name, value)当所给的键不存在时,会设置其新值,但返回值为None6.String setrange 根据索引修改某个键的value值setrange(name, offset, value)返回值为:修改后的字符串长度name:键,所给不存在时自动添加offset:偏移量,以0开始value:修改的字符或字符串,字符串时以offset向后顺延7.String getrange 根据索引获取某个键的部分value值若所给的键不存在时,返回空值 b”getrange(key, start, end)结果为:8.String strlen 获取value的长度strlen(name)所给的键不存在时,返回值为09.String incr int类型的value自增(自减)同理:自减,decr(name, amount=1)所给的键对应的值必须是整数或字符串的数值,不然会报错。默认自增幅度为1incr(name, amount=1)返回值为:修改后的值,int类型10.String incrbyfloat 浮点数类型的value自增incrbyfloat(name, amount=1.0)返回值为:浮点数类型float11.String append value后面追加append(key, value)若所给的键不存在,则设置新值返回值为修改后的字符串的长度结果为:在redis中,一个键对应一个列表12.List lpush 列表左边添加值 rpush(右边)lpush(name, *values)value值有多个时,从左到右依次向列表左边添加,类型可以不同所给的键不存在时,新建一个列表返回值:列表的大小13.List lpushx 键存在时,添加到列表左边 rpushx(最右边)lpushx(name, value)只有键存在时,才添加。若键不存在则不添加,也不新创建列表返回值为:列表大小14.List llen 获取所给键的列表大小llen(name)15.List linsert 在列表中间插入新值linsert(name, where, refvalue, value)name:键名where:位置,前面(BEFORE)或后面(AFTER)refvalue:指定哪个值的前后插入value:插入的新值返回值:插入后列表的长度,若返回-1,则refvalue不存在插入前的数据:插入后的数据:16.List lset 列表中通过索引赋值lset(name, index, value)返回值:成功 True 否则 False17.List lindex 通过索引获取列表值lindex(name, index)18.List lrange 列表中获取一段数据lrange(name, start, end)返回值:List类型的一段数据19.List lpop 删除左边的第一个值 rpop(右边)lpop(name)返回值:被删除元素的值20.List lrem 删除列表中N个相同的值lrem(name, value, num=0)name:键名value:需删除的值num:删除的个数 整数表示从左往右 负数表示从右往左 例如:2 -2返回值:返回删除的个数21.List ltrim 删除列表中范围之外的所有值ltrim(name, start, end)返回值:成功 True22.List blpop 删除并返回列表最左边的值 brpop(最右边)blpop(keys, timeout=0)keys:给定的键timeout:等待超时时间,默认为0,表示一直等待返回值:tuple类型 形如: (键名, 删除的值) (b’Zarten’, b’hehe’)23.List rpoplpush 一个列表中最右边值取出后添加到另一个列表的最左边 brpoplpush阻塞版本rpoplpush(src, dst)brpoplpush(src, dst, timeout=0)为rpoplpush的阻塞版本,timeout为0时,永远阻塞返回值:取出的元素值内部存储为各个键值对24.Hash hset 哈希中添加一个键值对hset(name, key, value)key存在,则修改,否则添加返回值:返回添加成功的个数 int25.Hash hmset 设置哈希中的多个键值对hmset(name, mapping)mapping:dict 类型返回值:成功 True26.Hash hmget 获取哈希中多个键值对hmget(name, keys, *args)返回值:值的列表 list 形如: [b’1′, b’123′] 27.Hash hget 获取指定key的值hget(name, key)28.Hash hgetall 获取哈希中所有的键值对hgetall(name)返回值:dict类型29.Hash hlen 获取哈希中键值对的个数hlen(name)30.Hash hkeys 获取哈希中所有的键keyhkeys(name)返回值:list类型31.Hash hvals 获取哈希中所有的值valuehvals(name)返回值:list类型32.Hash hexists 检查哈希中是否有某个键keyhexists(name, key)返回值:有 True ;否则 False33.Hash hdel 删除哈希中键值对(key-value)hdel(self, name, *keys)返回值:int 删除的个数34.Hash hincrby 自增哈希中key对应的value值(必须整数数值类型)hincrby(name, key, amount=1)若所给的key不存在则创建,amount默认增加1,可以为负数返回值:int 增加后的数值35.Hash hincrbyfloat 自增浮点数 同上hincrbyhincrbyfloat(name, key, amount=1.0)36.Hash expire 设置整个键的过期时间expire(name, time)time:秒,时间一到,立马自动删除37.Hash hscan 增量迭代获取哈希中的数据hscan(name, cursor=0, match=None, count=None)name:redis的namecursor:游标(基于游标分批取获取数据)match:匹配指定key,默认None 表示所有的keycount:每次分片最少获取个数,默认None表示采用Redis的默认分片个数返回值:tuple 类型 ;(扫描位置,所有dict数据)38.Hash hscan_iter 返回hscan的生成器hscan_iter(name, match=None, count=None)参照上面函数hscan集合中的元素不重复,一般用于过滤元素39.Set sadd 添加元素到集合中sadd(name, *values)若插入已有的元素,则自动不插入40.Set scard 返回集合中元素的个数scard(name)41.Set smembers 获取集合中的所有元素smembers(name)返回值:set类型,形如: {b’a’, b’apple’, b’c’, b’b’}42.Set srandmember 随机获取一个或N个元素srandmember(name, number=None)name:键名number:一个或N个,默认返回一个。若返回N个,则返回List类型返回值:返回一个值或一个列表43.Set sismember 判断某个值是否在集合中sismember(name, value)返回值:True 在 False 不在44.Set spop 随机删除并返回集合中的元素spop(name)45.Set srem 删除集合中的一个或多个元素srem(name, *values)返回值:返回删除的个数 int46.Set smove 将一个集合中的值移动到另一个集合中smove(src, dst, value)若value不存在时,返回False返回值:成功 True47.Set sdiff 返回在一个集合中但不在其他集合的所有元素(差集)sdiff(keys, *args)在keys集合中,不在其他集合中的元素返回值:set类型 {b’2′, b’4′, b’3′, b’1′}48.Set sdiffstore 上面的sdiff的返回值(差集)保存在另一个集合中sdiffstore(dest, keys, *args)在keys集合中,不在其他集合中的元素保存在dest集合中dest:新的集合,设置的新集合,旧集合会被覆盖返回值:int 返回作用的个数49.Set sinter 返回一个集合与其他集合的交集sinter(keys, *args)返回值:set类型50.Set sinterstore 返回一个集合与其他集合的交集,并保存在另一个集合中sinterstore(dest, keys, *args)dest:另一个集合,设置新集合,旧集合元素会被覆盖51.Set sunion 返回一个集合与其他集合的并集sunion(keys, *args)52.Set sunionstore 返回一个集合与其他集合的并集,并保存在另一个集合中sunionstore(dest, keys, *args)dest:另一个集合,设置新集合,旧集合元素会被覆盖返回值:新集合元素个数有序集合比集合多了一个分数的字段,可对分数升序降序53.Zset zadd 有序集合中添加元素zadd(name, *args, **kwargs)添加元素时需指定元素的分数返回值:返回添加的个数2种方式如下:54.Zset zcard 返回有序集合中元素个数zcard(name)55.Zset zcount 返回有序集合中分数范围内的元素个数zcount(name, min, max)包含min max返回值:个数 int56.Zset zscore 返回有序集合中指定某个值的分数zscore(name, value)返回值:float 类型的分数;形如: -5.0 57.Zset zincrby 增加有序集合中某个值的分数zincrby(name, value, amount=1)value:若存在,则增加其amount分数;若不存在,则增加新值以及对应的分数amount:增加的值,可以为负数返回值:增加后的分数 float类型 ;形如: -5.0 58.Zset zrem 删除有序集合中的某个或多个值zrem(name, *values)返回值:返回删除的个数59.Zset zremrangebyrank 删除有序集合元素根据排序范围zremrangebyrank(name, min, max)返回值:删除个数 int删除后如下图:60.Zset zremrangebyscore 删除有序集合根据分数范围zremrangebyscore(name, min, max)返回值:删除个数 int61.Zset zrank 返回某个值在有序集合中的分数排名(从小到大) zrevrank(从大到小)zrank(name, value)返回值:value在name中的分数排名值,分数从小到大排名,从0开始返回值如下图:62.Zset zrange 返回有序集合分数排序的一段数据zrange(name, start, end, desc=False, withscores=False, score_cast_func=float)name:redis的namestart:有序集合索引起始位置(非分数)end:有序集合索引结束位置(非分数)desc:排序规则,默认按照分数从小到大排序withscores:是否获取元素的分数,默认只获取元素的值score_cast_func:对分数进行数据转换的函数返回值:list类型 [(b’tt’, 10.0), (b’d’, 6.0), (b’c’, 5.0)] 结果如图:bitmap中存放二进制的位0和1,类似位数组。典型应用是基于redis的布隆过滤器。属于String字符串数据结构,固bit 映射被限制在 512 MB 之内(2^32)63.Bitmap setbit 设置位图的值setbit(name, offset, value)name:redis键名offset:偏移量,大于等于0。当偏移伸展时,空白位置以0填充value:二进制值 0或164.Bitmap getbit 返回位图指定偏移量的值getbit(name, offset)返回0或165.Bitmap bitcount 返回位图中二进制为1的总个数bitcount(key, start=None, end=None)start end指定开始和结束的位,默认整个位图全局函数对任何数据结构都适用66.全局函数 delete 删除redis中一个或多个键的所有数据delete(*names)返回值:int 删除的个数67.全局函数 exists 判断redis中是否存在某个键exists(name)返回值:存在True;反之False68.全局函数 rename 重命名redis中键名rename(src, dst)返回值:成功True69.全局函数 move 移动redis中某个键所有数据到某个db中move(name, db)返回值:成功True70.全局函数 randomkey 随机获取redis中某个键名randomkey()返回值:形如: b’name_55′71.全局函数 type 查看redis中某个键数据结构类型type(name)返回值:字符串(字节形式) 形如: b’hash’none(key不存在)string(字符串)list(列表)set(集合)zset(有序集)hash(哈希表)到此,相信大家对“怎么使用Python操作Redis数据库”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Docker login和logout怎么使用

这篇“Dockerlogin和logout怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Dockerlogin和logout怎么使用”文…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/16 09:11
下一篇 03/16 10:12

相关推荐