string
是 redis
最基本的类型,你可以理解成与 Memcached
一模一样的类型,一个 key
对应一个 value
。
string
类型是二进制安全的。意思是 redis
的 string
可以包含任何数据。比如jpg
图片或者序列化的对象。
string
类型是 Redis
最基本的数据类型,string
类型的值最大能存储 512MB
。
String
基本命令set
系列命令set(key, value, ex=None, px=None, nx=False, xx=False)
在Redis
中设置值,默认,不存在则创建,存在则修改
参数:
ex
:过期时间(s
)px
:过期时间(ms
)过期时间指的是多长时间后,set
的key
对应的value
值失效,变为None
nx
:如果设置True
,则只有当key
不存在时,当前的set
才执行(新建)xx
:如果设置True
,则只有当key
存在时,当前的set
才执行(修改)setnx(key, value)
设置值,只有key
不存在时,执行设置操作(添加)
setex(key, value, time)
设置值的同时设置过期时间(单位为s
)
psetex(key, time_ms, value)
设置值,同时设置过期时间(单位为ms
)
示例:
import redis
import time
pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.setex("fruit2", "orange", 5)
time.sleep(5)
print(r.get('fruit2')) # 5秒后,取值就从orange变成None
mget
/mset
系列命令mget(keys, *args)/mset(*args, **kwargs)
批量获取/批量设置值
r.mget({‘k1’: ‘v1’, ‘k2’: ’v2’}) # 批量获取
r.mset(k1=‘v1’, k2=‘v2’) # 这里的k1 和k2 不能带引号
print(r.mget(‘k1’, ‘k2’))
print(r.mget(‘k1'))
getrange
/setrange
命令getrange(key, start, end)
获取子序列(根据字节获取,非字符)
参数:
key
:Redis
的key
start
:起始位置(字节)end
:结束位置(字节)setrange(key, offset, value)
修改字符串的内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
参数:
offset
:字符串的索引,字节(一个汉字三个字节)value
:要设置的值strlen
返回key对应值的字节长度(一个汉字三个字节)
print(r.strlen(‘foo'))
incr
incr(self, key, amount=1)
自增key
对应的值,当key
不存在时,则创建key=amount
,否则,则自增
参数:
key
:Redis
的key
amount
:自增数(必须时整数)示例:
r.set(‘foo’, 123)
print(r.mget(‘foo’, ‘foo1’, ‘foo2’, ‘k1’, ‘k2’))
r.incr(‘foo’, amount)
incrbyfloat
incrbyfloat(self, key, amount=1.0)
自增key
对应的值,当key
不存在时,则创建key=amount
,否则,则自增。
参数:
key
:Redis
的key
amount
:自增数(浮点型)示例
r.set("foo1", "123.0”)
r.set("foo2", "221.0”)
print(r.mget("foo1", "foo2"))
r.incrbyfloat("foo1", amount=2.0)
r.incrbyfloat("foo2", amount=3.0)
print(r.mget("foo1", "foo2"))
decr
decr(self, key, amount=1)
自减 key
对应的值,当key
不存在时,则创建key=amount
,否则,则自减。
参数:
key
:Redis
的key
amount
:自减数(整数)示例
r.decr("foo4", amount=3) # 递减3
r.decr("foo1", amount=1) # 递减1
print(r.mget("foo1", "foo4"))
append
append(key, value)
在redis key
对应的值后面追加内容
参数:
key
:redis
的key
value
:要追加的字符串示例
r.append("key", "haha") # 在key对应的值junxi后面追加字符串haha
print(r.mget("key"))