Redis学习笔记(二)字符串进阶
1、增减操作
字符串可以储存字节串、整数、浮点数三种类型的值,如果值无法被解释为十进制的整数或浮点数,那么对此值进行增减操作会返回错误,如果对一个不存在的或者保存了空串的键进行增减操作,Redis将当作0处理。
INCR key_name(键储存的值加1)
DECR key_name(键储存的值减1)
INCRBY key_name num(键储存的值加整数num)
DECRBY key_name num(键储存的值减整数num)
INCRBYFLOAT key_name num (键储存的值加浮点数num)
root@localhost:~# redis-cli
127.0.0.1:> set num
OK
127.0.0.1:> incr num
(integer)
127.0.0.1:> get num
""
127.0.0.1:> decr num
(integer)
127.0.0.1:> incrby num
(integer)
127.0.0.1:> decrby num
(integer)
127.0.0.1:> incrby num -
(integer)
127.0.0.1:> decrby num -
(integer)
127.0.0.1:> incrbyfloat num 1.2
"5.2"
127.0.0.1:> incrby num 1.2
(error) ERR value is not an integer or out of range
127.0.0.1:> incrbyfloat num -0.2
""
2、处理字符串子串与二进制位
APPEND key_name value(将value追加至值末尾)
GETRANGE key_name index1 index2(获取从index1至index2范围内的子串,包含起止位置)GETRANGE 由SUBSTR改名而来
SETRANGE key_name offset value(将从offset开始的子串设置为value)
GITBIT key_name offset(返回二进制位串中偏移量为offset的值)
SETBIT key_name offset value(将二进制串中偏移量为offset的值设为value)
BITCOUNT key_name [index1 index2](统计二进制串中值为1的二进制位的个数,如果给定了范围,则在范围内统计)
BITOP operation key1 key2 [key3...](对一个或多个二进制串执行与(AND)、或(OR)、异或(XOR)、非(NOT)中的一种操作,结果保存在key1)
root@localhost:~# redis-cli
127.0.0.1:> append str hello
(integer)
127.0.0.1:> append str world
(integer)
127.0.0.1:> get str
"helloworld"
127.0.0.1:> substr str
"hello"
127.0.0.1:> getrange str
"world"
127.0.0.1:> setrange str W
(integer)
127.0.0.1:> get str
"helloWorld"
127.0.0.1:> setrange str !
(integer)
127.0.0.1:> get str
"helloWorld\x00\x00!"
root@localhost:~# redis-cli
127.0.0.1:> set bitstr ?
OK
127.0.0.1:> getbit bitstr
(integer)
127.0.0.1:> setbit bitstr
(integer)
127.0.0.1:> get bitstr
"\x7f"
127.0.0.1:> bitcount bitstr
(integer)
Redis学习笔记(二)字符串进阶的更多相关文章
- Redis学习笔记二 (BitMap算法分析与BitCount语法)
Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...
- amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules
amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules 一.总结 1.见名知意:见那些class名字知意,见函数名知意,见文件名知意 例如(HISTORY.md Web 组件更新历史 ...
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
- amazeui学习笔记二(进阶开发3)--HTML/CSS规范Rules
amazeui学习笔记二(进阶开发3)--HTML/CSS规范Rules 一.总结 1.am:以 am 为命名空间 2.模块状态: {命名空间}-{模块名}-{状态描述} 3.子模块: {命名空间}- ...
- amazeui学习笔记二(进阶开发2)--Web组件简介Web Component
amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...
- amazeui学习笔记二(进阶开发1)--项目结构structure
amazeui学习笔记二(进阶开发1)--项目结构structure 一.总结 1.项目结构:是说的amazeui在github上面的项目结构,二次开发amazeui用 二.项目结构structure ...
- redis 学习笔记二 (简单动态字符串)
redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来 ...
- Redis学习笔记二
学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而需要设计到对象的序列化和反序列化.java序 ...
- StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用
ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行Redis的一系列操作,对于一个整个应用 ...
- ES6学习笔记(二)——字符串扩展
相信很多人也和我一样,不喜欢这样循规蹈矩的逐条去学习语法,很枯燥乏味.主要是这样学完一遍之后,没过一段时间就忘到九霄云外了.不如实际用到的时候研究它记得牢靠,所以我就整理成笔记,加深记忆的同时便于复习 ...
随机推荐
- BestCoder4 1002 Miaomiao's Geometry (hdu 4932) 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 题目意思:给出 n 个点你,需要找出最长的线段来覆盖所有的点.这个最长线段需要满足两个条件:(1 ...
- codeforces 443 B. Kolya and Tandem Repeat 解题报告
题目链接:http://codeforces.com/contest/443/problem/B 题目意思:给出一个只有小写字母的字符串s(假设长度为len),在其后可以添加 k 个长度的字符,形成一 ...
- VC++静态连接库
目录 第1章静态连接库 1 1.1 同名函数的选择 1 1.2 模块合并 2 1.2.1 模块替换 4 1.3 内联函数 4 第1章静态连接库 静态连接库与动态连接库一样 ...
- 创建Android本地repo
/**************************************************************************** * 创建Android本地repo * 说明 ...
- python3练习题四
循环 题目: 答案: #!/usr/bin/env python3 #-*- coding:utf-8 -*- L = ['Bart', 'Lisa', 'Adam'] for i in L: pri ...
- Unity网格合并_材质合并[转]
http://blog.csdn.net/chenggong2dm/article/details/41699029
- hihocoder 1331 扩展二进制数(递归)
传送门 题意 略 分析 由低位向高位考虑,令f(n)为n的扩展二进制数表示数 1.当前数为偶数,末位为0或2,那么f(n)=f(n/2)+f(n/2-1) 2.当前数为奇数,末位为1,那么f(n)=f ...
- 51nod 1138 【数学-等差数列】
思路: 很显然每个连续的序列都是等差数列, 那么我们利用等差数列求和公式. S=(a1+a1+k-1)k/2=(2·a1+k-1)*k/2;a1是首项,k是个数. 枚举k,首项最小为1,k最大,具体不 ...
- POJ3264【线段树】
求区间最值-(基础,继续) code---.. #include<cstdio> #include<iostream> #include<string.h> #in ...
- keepalived+nginx高可用实现
1.keepalived介绍 keepalived最初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了实现高可用的VRRP功能.keepalived除了能 ...