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 图片数据
存储中文注意事项
- Redis学习1--字符串学习
- redis 字符串命令学习1
- Redis源码学习:字符串
- redis学习笔记(1)---字符串sds
- Redis学习笔记---字符串类型
- 1.Redis学习-字符串类型
- Redis系列学习笔记2 Redis字符串
- redis学习之Redis 字符串(String)
- Redis源码学习之【动态字符串】
- Redis源码学习之【动态字符串】
- redis源码学习-sds字符串结构
- Redis学习笔记(一)----简单动态字符串
- redis 学习笔记二 (简单动态字符串)
- Redis学习-3.1:String字符串详解
- redis学习系列(三-1)--redis基础类型初探(字符串)
- redis学习总结1
- redis学习日志1
- Redis 学习笔记1
- 杭电题目分类
- MVC学习系列-HtmlHelper分析以及实例演示
- C#判断上传文件是否是图片以防止木马上传的方法
- 精美手电筒间断闪烁实现
- AIX 常用命令汇总
- Redis学习1--字符串学习
- LeetCode 6.ZigZag Conversion
- android tab实现方式3 of 4,tabhost
- 将ppt转换成pdf格式的软件
- UIView属性分析
- codeforce 509C (很有趣的贪心模拟构造)
- ubuntu中Beyond Compare安装步骤
- 解决jsp中文乱码问题
- 为什么我不看好HTML5替代原生APP