This article will introduce you to how to install and use the redis module in Python. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.
##[Related recommendations:Redis video tutorial]
pip3 install redis
import redis conn = redis.Redis(host='127.0.0.1', port=6379) # 可以使用url方式连接到数据库 # conn = Redis.from_url('redis://@localhost:6379/1') conn.set('name', 'LinWOW') print(conn.get('name'))
from redis import ConnectionPool POOL=ConnectionPool(host='127.0.0.1',port=6379,max_connections=100)
import redis from redis_pool import POOl conn = redis.Redis(connection_pool=POOl) conn.set('name', 'LinWOW') print(conn.get('name'))
redis://[:password]@host:port/db # TCP连接 rediss://[:password]@host:port/db # Redis TCP+SSL 连接 unix://[:password]@/path/to/socket.sock?db=db # Redis Unix Socket 连接
Function | Example | Example result | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ex, expiration time (s); px, expiration time (ms); nx, if set to True, the current set operation will be executed only when name does not exist. If the value exists, it cannot be modified and the execution will have no effect; xx, if set to True, the current set operation will be executed only if name exists. The value can be modified only if the value exists. If the value does not exist, the new value will not be set. | The effect is the same as setex and setnx | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Assign value to name | redis.set('name', 'Bob') | True | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Returns the value of the string whose key is name in the database | redis.get('name') | b'Bob' | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Assign value to the string whose key is name in the database and return the last value | redis.getset('name', 'Mike') | b'Bob' | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Return the value corresponding to multiple keys | redis.mget(['name', 'nickname']) | [b'Mike', b'Miker'] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set the value if the key does not exist | redis.setnx('newname', 'James') | True for the first time, False for the second time | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set the corresponding value to a value of string type, and specify the validity period corresponding to this key value | redis .setex('name', 1, 'James') | True | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set the specified key Substring of value value | redis.set('name', 'Hello') redis.setrange('name', 6, 'World') | 11, modified characters String length | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Batch assignment | redis.mset({'name1': 'Durant', 'name2': ' James'}) | True | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Batch assignment only when none of the keys exist | redis.msetnx ({'name3': 'Smith', 'name4': 'Curry'}) | True | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
key is the value-added operation of name. The default is 1. If the key does not exist, it will be created and set to amount | redis.incr('age', 1) | 1, that is, after modification The value of | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
key is the value decrement operation of name. The default is 1. If the key does not exist, it is created and set to - amount | redis.decr('age', 1) | -1, which is the modified value | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
key appends value to the string value of name | redis.append('nickname', 'OK') | 13, which is the modified string length | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Returns the substring of the value of the string whose key is name | redis.substr('name' , 1, 4) | b'ello' | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Get the value of key from start to end Substring of | redis.getrange('name', 1, 4) | b'ello' |
Method | Function | Example | Example result |
---|---|---|---|
exists(name) | Determine whether a key exists | redis.exists('name') | True |
delete(name) | Delete a key | redis.delete('name') | 1 |
type(name) | Judge the key type | redis.type('name') | b'string' |
keys(pattern) | Get all keys that match the rules | redis.keys('n*') | [b' name'] |
randomkey() | Get a random key | randomkey() | b'name' |
rename(src, dst) | Rename the key | redis.rename('name', 'nickname') | True |
dbsize() | Get the number of keys in the current database | dbsize() | 100 |
expire(name, time) | Set the expiration time of the key in seconds | redis.expire('name', 2) | True |
ttl(name) | Get the expiration time of the key in seconds, -1 means it will never expire | redis.ttl('name ') | -1 |
Move key to other database | move('name ', 2) | True | |
Delete all keys in the currently selected database | flushdb() | True | |
Delete all keys in all databases | flushall() | True |
Function | Example | Example result | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Add at the end of the list with key name For elements whose value is value, you can pass multiple | redis.rpush('list', 1, 2, 3) | 3, list size | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Add an element with value as value in the list header with key name, you can pass multiple | redis.lpush('list', 0) | 4, list size | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Returns the length of the list with key name | redis.llen(' list') | 4 | ##lrange(name, start, end) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis.lrange('list', 1, 3) | [b'3', b'2', b'1'] | ltrim(name, start, end) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ltrim('list', 1, 3) | True | lindex(name, index) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis.lindex(' list', 1) | b'2' | lset(name, index, value) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis.lset('list', 1, 5) | True | lrem(name, count, value) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis.lrem('list', 2, 3) | 1, that is, the deleted elements Number | lpop(name) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis.lpop('list') | b'5' | rpop(name) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis .rpop('list') | b'2' | blpop(keys, timeout=0) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis.blpop('list') | [b'5'] | brpop(keys, timeout=0) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis .brpop('list') | [b'2'] | rpoplpush(src, dst) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
redis.rpoplpush('list', 'list2') | b'2' |
方法 | 作用 | 示例 | 示例结果 |
---|---|---|---|
sadd(name, *values) | 向key为name的set中添加元素 | redis.sadd(‘tags’, ‘Book’, ‘Tea’, ‘Coffee’) | 3,即插入的数据个数 |
srem(name, *values) | 从key为name的set中删除元素 | redis.srem(‘tags’, ‘Book’) | 1,即删除的数据个数 |
spop(name) | 随机返回并删除key为name的set中一个元素 | redis.spop(‘tags’) | b’Tea’ |
smove(src, dst, value) | 从src对应的set中移除元素并添加到dst对应的set中 | redis.smove(‘tags’, ‘tags2’, ‘Coffee’) | True |
scard(name) | 返回key为name的set的元素个数 | redis.scard(‘tags’) | 3 |
sismember(name, value) | 测试member是否是key为name的set的元素 | redis.sismember(‘tags’, ‘Book’) | True |
sinter(keys, *args) | 返回所有给定key的set的交集 | redis.sinter([‘tags’, ‘tags2’]) | {b’Coffee’} |
sinterstore(dest, keys, *args) | 求交集并将交集保存到dest的集合 | redis.sinterstore(‘inttag’, [‘tags’, ‘tags2’]) | 1 |
sunion(keys, *args) | 返回所有给定key的set的并集 | redis.sunion([‘tags’, ‘tags2’]) | {b’Coffee’, b’Book’, b’Pen’} |
sunionstore(dest, keys, *args) | 求并集并将并集保存到dest的集合 | redis.sunionstore(‘inttag’, [‘tags’, ‘tags2’]) | 3 |
sdiff(keys, *args) | 返回所有给定key的set的差集 | redis.sdiff([‘tags’, ‘tags2’]) | {b’Book’, b’Pen’} |
sdiffstore(dest, keys, *args) | 求差集并将差集保存到dest的集合 | redis.sdiffstore(‘inttag’, [‘tags’, ‘tags2’]) | 3 |
smembers(name) | 返回key为name的set的所有元素 | redis.smembers(‘tags’) | {b’Pen’, b’Book’, b’Coffee’} |
srandmember(name) | 随机返回key为name的set的一个元素,但不删除元素 | redis.srandmember(‘tags’) |
Method | Function | Example | Example result |
---|---|---|---|
zadd(name, args, *kwargs) | Add element member to the zset whose key is name, and score is used for sorting. If the element exists, update its order | redis.zadd('grade', 100, 'Bob', 98, 'Mike') | 2, which is the number of added elements |
zrem(name, *values) | Delete the elements in the zset whose key is name | redis.zrem('grade', 'Mike' ) | 1, that is, the number of deleted elements |
zincrby(name, value, amount=1) | If in the zset whose key is name If the element value already exists in the collection, the score of the element is increased by amount. Otherwise, the element is added to the collection and its score value is amount | redis.zincrby('grade', 'Bob', -2) | 98.0, that is, the modified value |
zrank(name, value) | Returns the ranking of the elements in the zset whose key is name (by score Sort from small to large) that is, subscript | redis.zrank('grade', 'Amy') | 1 |
zrevrank(name, value ) | Returns the reciprocal ranking of the elements in the zset with key name (sorted from large to small by score), that is, the subscript | redis.zrevrank('grade', 'Amy') | 2 |
zrevrange(name, start, end, withscores=False) | Returns the zset whose key is name (sorted by score from large to small) All elements with index from start to end | redis.zrevrange('grade', 0, 3) | [b'Bob', b'Mike', b'Amy', b'James'] |
zrangebyscore(name, min, max, start=None, num=None, withscores=False) | Return to the zset with key name Score elements in the given interval | redis.zrangebyscore('grade', 80, 95) | [b'Amy', b'James'] |
zcount(name, min, max) | Returns the number of scores in the given interval in the zset whose key is name | redis.zcount('grade', 80, 95) | 2 |
zcard(name) | Returns the number of elements of the zset whose key is name | redis.zcard(' grade') | 3 |
zremrangebyrank(name, min, max) | Delete the elements ranked in the given interval in the zset with key name | redis.zremrangebyrank('grade', 0, 0) | 1, which is the number of deleted elements |
zremrangebyscore(name, min, max) | Delete the elements whose score is in the given interval in the zset with key name | redis.zremrangebyscore('grade', 80, 90) | 1, that is, delete Number of elements |
Method | Function | Example | Example result |
---|---|---|---|
hset(name, key, value) | The key is Add mapping to the hash of name | hset('price', 'cake', 5) | 1, which is the number of added mappings |
hsetnx(name, key, value) | Add mapping to the hash with key name, if the mapping key name does not exist | hsetnx('price', 'book', 6) | 1, that is, the number of added mappings |
Returns the value corresponding to the field in the hash whose key is name | redis.hget('price', 'cake') | 5 | |
Return The key is the value corresponding to each key in the hash of name | redis.hmget('price', ['apple', 'orange']) | [b'3', b'7 '] | |
Add mappings in batches to the hash with key name | redis.hmset('price', {'banana': 2, 'pear': 6}) | True | ##hincrby(name, key, amount=1) |
redis.hincrby('price', 'apple', 3) | 6 to the modified value | hexists(name, key) | |
redis.hexists('price', 'banana') | True | hdel(name, *keys) | |
redis.hdel( 'price', 'banana') | True | hlen(name) | |
redis.hlen('price') | 6 | hkeys(name) | |
redis.hkeys('price') | [b'cake', b'book', b'banana', b'pear'] | hvals(name) | |
redis.hvals('price') | [b '5', b'6', b'2', b'6'] | hgetall(name) | |
redis.hgetall('price') | {b'cake': b'5', b'book': b'6', b'orange': b'7', b'pear': b'6'} |