Redis基本操作

2019-08-16  本文已影响0人  遇明不散
Redis简介
Redis常用命令
# 存数据:set key value
set a 123
set b 456

# 取数据:get key
get a

# 获取多条数据:mget key [key...].
mget a b

# 检查key是否存在:exists key [key ...]
# 存在返回1,不存在返回0
exists a

# 获取key值所存字符串的长度:strlen key
strlen a # 3

# 获取指定key值所对应的字符串的字符串
# getrange key start end
getrange a 1 2 # "23"

# 删除key值:del key
del b

# 设定过期时间:expire key seconds
expire a 600
# 查询key值剩余时间:ttl key
# 无过期时间返回-1,已经过期返回-2
ttl a

# 以毫秒设定过期时间:pexpire key ms
expire a 600
# 以毫秒查询key值剩余时间:pttl key
# 无过期时间返回-1,已经过期返回-2
pttl a

# 移除过期时间:persist key
persist a

# 重命名:rename key newkey
rename a A

# 随机返回key值:randomkey
randomkey

# 获取key所存储的类型:type key
type a

# 更改指定key值的value(返回key原有的value)
# getset  key newvalue
getset a 789
Hash(哈希)
# 存储hash值:hmset key field value
hmset teacher name 'Tom' age 23 sex 0

# 获取hash表中key值所有字段和值:hgetall key
hgetall teacher

# 获取hash表中的key值指定字段的值:hget key field
hget teacher age

# 删除key下保存的hash表中指定的filed的值:hdel key filed
hdel teacher sex

# 查询指定key下保存的hash是否存在指定字段:hexists key field
hexists teacher name

# 获取指定key下存储的hash表中的全部字段:hkeys  key
hkeys teacher

# 获取指定key下存储的hash表中的全部值:hvals  key
hvals teacher
列表
# 在列表末尾添加一个或多个值,返回列表长度
# rpush key value [value1,value2,...]
rpush lst Tom Tony Jason

# 获取列表中指定范围内的元素:lrange key start end
lrange lst 0 -1

# 获取列表长度:llen key
llen lst

# 通过索引获取列表中的元素:lindex key index
lindex lst 1 # Tony

# 通过索引设置指定元素的值:lset key index newvalue
lset lst 2 Mike

# 在列表的某个元素之前或之后插入元素,若执行成功返回列表的长度
# 若该元素不存在,不执行任何操作
# 若key不存在, key被视为空列表,不执行任何操作
# linsert key before|after pivot value
linsert lst after Tom Wang

# 将一个或多个值插入到列表的表头
# 如果有多个值,那么各个值按从左到右的顺序依次插入到表头
# 如果列表不存在,会创建一个新的列表并执行lpush操作
# lpush key value [value ...]
lpush lst a b c

# 移除并返回列表的头元素:LPOP key
lpop lst

# 移除并返回列表的头元素:RPOP key
rpop lst
有序集合
# 向有序集合添加一个或多个成员,或更新已存在成员分数
# ZADD key score member [[score member] [score member] ...]
zadd links 1 baidu 2 bing 3 sina

# 获取有序集合的成员数:zcard key
zcard links

#  获取成员分数值:zscore key member
zscore links sina

# 返回有序集指定区间内的成员及分数
# ZRANGE key start stop [WITHSCORES]
zrange links 0 1

# 移除有序集中的一个或多个成员,不存在的成员将被忽略
# ZREM key member [member ...]
zrem links sina

# 向有序集合指定的成员增加分数
# ZINCRBY key increment membe
zincrby links 5 baidu
连接池

为了节省资源,减少多次连接损耗,连接池作用相当于总揽多个客户端与服务器的连接,当新的客户端需要连接时,只需要到连接池里获取一个连接即可,实际上只是一个连接共享给多可客户端

import redis
# 声明连接池
pool =redis.ConnectionPool(host="localhost",port=6379,decode_responses=True)
# 建立连接
r1 = redis.Redis(connection_pool=pool)
r2 = redis.Redis(connection_pool=pool)
# 执行redis命令操作
r1.set('apple','a')
r2.set('banana','b')
# 打印连接信息(一致)
print(r1.get('apple'))
print(r2.get('banana'))
管道

一般情况下,执行一条命令必须等待结果才能执行下一条,管道用于在一次请求在执行多次指令,在python中管道可以代替事务

上一篇下一篇

猜你喜欢

热点阅读