Redis学习1--字符串学习

来源:互联网 发布:信托产品风险知乎 编辑:程序博客网 时间:2024/05/16 11:54

Redis存储数据格式有6中,首先来学习字符串String

1.字符串存储

为字符串键设置值

SET key value

将字符串键key的值设置为value,命令返回ok设置成功

如果字符串键key已经存在,那么将会覆盖原来的旧值



SET key value nx/xx

set命令还支持可选的nx和xx选项

如果给定了nx选项,仅在key不存在的情况下才进行设置

如果给定xx选项,仅在key已经存在的情况下设置


第一个nx-str键不存在所以设置失败

第二个msg键存在所以设置成功,并覆盖旧值

第三个nx-str本身不存在,用nx所以设置成功

第四个nx-str已经存在所以用nx设置不成功

第五个nx-str已经存在所以用xx设置成功,并修改


使用Redis来进行缓存


缓存程序的API及其实现

cache(client) 设置混成程序使用的客户端

Cache.put(name,content)把制定的内容放到混成中,并使用name来命名

Cache.get(name) 从缓存中以name名取出内容


在键不存在的情况下设置

SETNX key value

效果与set key value nx同


设置多个字符串键的值


MSET key value [key value...]

MGET key [key....]



一次设置多个不存在的键

MSETNX key value [key value...]

如果都不存在的话可以一次设置成功


第一次使用mset 设置成功返回了1

第二次设置因为ex-key已经存在,导致所有的key设置都没有成功


设置新值并返回旧值GETSET key new-value




追加内容到字符串 APPEND

将值追加到key对应value的后面



返回值的长度

SETLEN key



字符串的索引

字符串的索引,有正数索引(0)和负数索引(-1开始)


范围设置

SETRANGE key index value 只适用正数索引

从索引index开始,用value去覆盖给定key所存储的字符串值,返回覆盖后,字符串值得长度


示例中从索引1开始替换


范围取值

GETRANGE key start end 可以适用正数和负数索引

返回key存储值中的位于start到end的字符 包含start和end



设置和获取数字

incrby key increment  增加key值

decrby key decrement

当key值不存在会设置为0在操作



计数器API及其实现

Counter(name,client) 设置计数器的名字和客户端  

Counter.incr()              将计数器的值增1,然后返回计数器值

Counter.get()               返回计数器的值

Counter.reset(n=0)     将计数器的值重置,默认重置为0


Id生成器示例

IdGenerator(name,client)  设置id生成器的名字和客户端

idGenerator.get()                  生产一个新的自增id

idGenerator.init(n)                保留n个id,防止抢注,

generator = idGenerator('user-id',redis_client)

generator.init(10000)

generator.gen()

generator.incr()


浮点数的自增和自减

INCRBYLOAT key increment



设置和获取二进制数据

set、get、setnx、append等命令

SETBIT key index value设置二进制位的值

GETBIT key 获取二进制

BITCOUNT key start end



二进制位运算

BITOP operation destkey key [key...]

对一个或多个保存二进制位的字符串键执行位元操作,并将经过保存到destkey上。

operation 可以是AND、OR、NOT、XOR这四种操作中任意一种:

AND 求逻辑并、OR求逻辑或、XOR求逻辑异或、NOT求逻辑非


使用Redis缓存热门图片

图片网站通常要存储大量的图片,少量部分热门的图片。

为了加快网站获取热门图片的速度,我们可以利用Redis能够存储二进制数据的这一特性。

用之前构建的缓存程序来缓存图片网站中的热门图片

cache = Cache(redis_client)  设置缓存的客户端

file = open('redis-logo.jpg','r')  打开文件

data = file.read()   读取文件数据

file.close()

cache.put('redis-log',data) 以redis-log为名字,将图片缓存起来

cache.get('redis-logo')  去除redis-logo 图片数据


存储中文注意事项



0 0
原创粉丝点击