12、Python3 Redis String

stringredis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value

string 类型是二进制安全的。意思是 redisstring 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB

String基本命令

1、set系列命令
set(key, value, ex=None, px=None, nx=False, xx=False)

Redis中设置值,默认,不存在则创建,存在则修改

参数:

  • ex:过期时间(s
  • px:过期时间(ms)过期时间指的是多长时间后,setkey对应的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
2、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'))
3、getrange/setrange命令
getrange(key, start, end)

获取子序列(根据字节获取,非字符)
参数:

  • key:Rediskey
  • start:起始位置(字节)
  • end:结束位置(字节)
setrange(key, offset, value)

修改字符串的内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
参数:

  • offset:字符串的索引,字节(一个汉字三个字节)
  • value:要设置的值
4、strlen

返回key对应值的字节长度(一个汉字三个字节)

print(r.strlen(‘foo'))
5、incr
incr(self, key, amount=1)

自增key对应的值,当key不存在时,则创建key=amount,否则,则自增

参数:

  • key:Rediskey
  • amount:自增数(必须时整数)

示例:

r.set(‘foo’, 123)
print(r.mget(‘foo’, ‘foo1’, ‘foo2’, ‘k1’, ‘k2’))
r.incr(‘foo’, amount)
6、incrbyfloat
incrbyfloat(self, key, amount=1.0)

自增key对应的值,当key不存在时,则创建key=amount,否则,则自增。

参数:

  • keyRediskey
  • 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"))
7、decr
decr(self, key, amount=1)

自减 key对应的值,当key不存在时,则创建key=amount,否则,则自减。
参数:

  • keyRediskey
  • amount:自减数(整数)

示例

r.decr("foo4", amount=3) # 递减3
r.decr("foo1", amount=1) # 递减1
print(r.mget("foo1", "foo4"))
8、append
append(key, value)

redis key对应的值后面追加内容
参数:

  • keyrediskey
  • value:要追加的字符串

示例

r.append("key", "haha")    # 在key对应的值junxi后面追加字符串haha
print(r.mget("key"))

你可能感兴趣的:(Redis)