简单认识redis的五种数据结构(python3示例)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单认识redis的五种数据结构(python3示例)相关的知识,希望对你有一定的参考价值。
1.Redis中的字符串
存储方式:可以是字符串,整数或者浮点数
操作方式:对整数和浮点数执行自增或者自减;对整个或者一部分字符串操作。
基本方法:(不同的实现语法会有细节上的不同)
GET:根据键获取值
SET:设置键值
DEL:删除键值
1: import redis
2: conn = redis.Redis()3: conn.set(‘greet‘,‘hello world‘)4: print(conn.get("greet"))5: conn.delete(‘greet‘)6: print(conn.get(‘greet‘))
结果
1: b‘hello world‘2: None
2.链表
存储方式:一个链表,链表上的每个节点都包含了一个字符串
操作方式:从链表的两端推入或者弹出元素;根据偏移量对链表进行修改;读取单个或者多个元素;根据值查找或者移除元素
基本方法:
RPUSH:将定值推入列表的右端
LRANGE:获取列表在给定范围上的所有值
LINDEX:获取列表在给定位置上的单个元素
LPOP:从列表的左端弹出一个值,并返回被弹出的值。
1: import redis
2: conn = redis.Redis()3: for i in range(5):4: conn.rpush("list1", "hi alex%s!" %i)5: # 语法与python的切片一样6: print(conn.lrange("list1", 0, -1))7: print(conn.lindex("list1", 4))8: print(conn.lpop("list1"))9: print(conn.rpop("list1"))
结果
1: [b‘hi alex0!‘, b‘hi alex1!‘, b‘hi alex2!‘, b‘hi alex3!‘, b‘hi alex4!‘]2: b‘hi alex4!‘3: b‘hi alex0!‘4: b‘hi alex4!‘
3.集合
无序的,并且数据是各不相同。
SADD 将给定元素添加到集合
SMEMBERS 返回集合包含的所有元素
SISMEMBER 检查给定元素是否存在于集合中
SREM 如果给定的元素存在于集合中,那么移除这个元素
1: import redis
2: conn = redis.Redis()3: conn.sadd("set1", "alex", "egon", "axe")4: print(conn.smembers("set1"))5: print(conn.sismember("set1", "axe"))6: print(conn.srem("set1", "alex"))7: print(conn.smembers("set1"))
结果
1: {b‘axe‘, b‘egon‘, b‘alex‘}2: True3: 14: {b‘axe‘, b‘egon‘}
4.散列
储存多个键值对的无序散列表
HSET 在散列值里面关联起给定的键值对
HGET 获取指定散列值的键
HGETALL 获取散列包含的所有键值对
HDEL 如果给定键存在于散列里面,那么移除这个键
1: import redis
2: conn = redis.Redis()3: conn.hset("hash1", "key1", "value1")4: conn.hset("hash1", "key2", "value2")5: print(conn.hget("hash1", "key1"))6: print(conn.hgetall("hash1"))7: print(conn.hdel("hash1", "key1"))8: print(conn.hgetall("hash1"))
结果
1: b‘value1‘2: {b‘key2‘: b‘value2‘, b‘key1‘: b‘value1‘}3: 14: {b‘key2‘: b‘value2‘}
5.有序集合
结构为:成员-分值(必须为浮点数)的有序映射,排序由分值大小来决定。
ZADD 将一个带有给定分值的成员添加到有序集合里面
ZRANGE 根据元素在有序排列中所处的位置,从有序集合里获取多个元素
ZRANGEBYSCORE 获取有序集合在给定分值范围内的所有元素
ZREM 如果给定成员存在于有序集合,那么移除这个成员
1: import redis
2: conn = redis.Redis()3: print(conn.zadd("ordset1", dict([("member1",73.8),("member2",83.8),("member3",93.8),("member4",103.8)])))4: print(conn.zrange("ordset1", 0, 1))5: print(conn.zrangebyscore("ordset1", 73.8, 93.8))6: print(conn.zrem("ordset1", "member1"))7: print(conn.zrange("ordset1", 0, -1))
结果
1: 42: [b‘member1‘, b‘member2‘]3: [b‘member1‘, b‘member2‘, b‘member3‘]4: 15: [b‘member2‘, b‘member3‘, b‘member4‘]
以上是关于简单认识redis的五种数据结构(python3示例)的主要内容,如果未能解决你的问题,请参考以下文章