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学习笔记(二)字符串进阶的更多相关文章

  1. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

  2. amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules

    amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules 一.总结 1.见名知意:见那些class名字知意,见函数名知意,见文件名知意 例如(HISTORY.md Web 组件更新历史 ...

  3. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  4. amazeui学习笔记二(进阶开发3)--HTML/CSS规范Rules

    amazeui学习笔记二(进阶开发3)--HTML/CSS规范Rules 一.总结 1.am:以 am 为命名空间 2.模块状态: {命名空间}-{模块名}-{状态描述} 3.子模块: {命名空间}- ...

  5. amazeui学习笔记二(进阶开发2)--Web组件简介Web Component

    amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...

  6. amazeui学习笔记二(进阶开发1)--项目结构structure

    amazeui学习笔记二(进阶开发1)--项目结构structure 一.总结 1.项目结构:是说的amazeui在github上面的项目结构,二次开发amazeui用 二.项目结构structure ...

  7. redis 学习笔记二 (简单动态字符串)

    redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来 ...

  8. Redis学习笔记二

    学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而需要设计到对象的序列化和反序列化.java序 ...

  9. StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用

    ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行Redis的一系列操作,对于一个整个应用 ...

  10. ES6学习笔记(二)——字符串扩展

    相信很多人也和我一样,不喜欢这样循规蹈矩的逐条去学习语法,很枯燥乏味.主要是这样学完一遍之后,没过一段时间就忘到九霄云外了.不如实际用到的时候研究它记得牢靠,所以我就整理成笔记,加深记忆的同时便于复习 ...

随机推荐

  1. POJ1113:Wall (凸包:求最小的多边形,到所有点的距离大于大于L)

    Once upon a time there was a greedy King who ordered his chief Architect to build a wall around the ...

  2. jsch上传文件功能

    转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html JSch是Java Secure Channel的缩写.JSch是一个 ...

  3. Barn Repair

    链接 分析:我们不断统计相邻两个元素之间的差值,按照差值从大到小排序,在进行贪心即可 /* PROB:barn1 ID:wanghan LANG:C++ */ #include "iostr ...

  4. J2ee的SSM和SSH的小结

    1.介绍SSM框架: SSM是指由Spring.SpringMVC.Mybatis三个开源框架整合的开发框架. a).Spring是一个轻量级的容器框架,核心是控制反转(IoC)和面向切面(AOP). ...

  5. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时6

    课时6 线性分类器损失函数与最优化(上) 多类SVM损失:这是一个两分类支持向量机的泛化 SVM损失计算了所有不正确的例子,将所有不正确的类别的评分,与正确类别的评分之差加1,将得到的数值与0作比较, ...

  6. bzoj 2131: 免费的馅饼【dp+树状数组】

    简单粗暴的dp应该是把馅饼按时间排序然后设f[i]为i接到馅饼能获得的最大代价,转移是f[i]=max(f[j])+v[i],t[j]<=t[i],2t[i]-2t[j]>=abs(p[i ...

  7. javascript E5面向对象和 E6面向对象

    javascript es6之前的面向对象方法: 一般使用构造函数来实现 function Person (name, age) { this.name = name; this.age = age; ...

  8. jQuery笔记之遍历索引(补充)

    遍历索引的相关方法: .each() .补充.children() .index() --------------------------------------------------------- ...

  9. hdu 3484 Interviewe RMQ+二分

    #include <cstdio> #include <iostream> #include <algorithm> using namespace std; + ...

  10. android 多线程 AsyncTask 下载图片

    AsyncTask 下载图片 package com.test.network; import android.graphics.Bitmap; import android.graphics.Bit ...