redis之字符串类型:
字符串类型是redis中最基本的数据类型,同时它也是memcached中仅有的数据类型。redis字符串类型的键能存储任何形式的字符串,包括二进制数据,例如,存储json化的对象甚至是一张图片(可以将图片编码成二进制的格式存储)。另外、一个字符串类型的值最多能存储512兆的数据。字符串类型是其他四种数据类型的基础,其它数据类型和字符串类型的差别从某种角度来说只是组织字符串的形式不同,例如,列表类型是以列表的形式组织字符串,集合类型是以集合的形式组织字符串。

redis字符串类型应用场景:
1、高速缓存HTML片段或者页面
2、高速缓存关系型数据库查询的结果
3、缓存用户的会话session信息(可以实现分布式的session共享)
4、统计网站的访问者的总数量,每天用户的注册数,用户活跃度/用户签到
5、限制api的访问频率
6、分布式锁,防止多个请求同时到达,并且缓存中无请求需要响应的数据,多个请求同时访问db
7、防止重复提交,由于前端的请求可能响应会慢,用户可能会多次点击请求,其实是没有必要的

redis字符串类型的基本命令
1、set key value [EX seconds] [PX milliseconds] [NX|XX]
功能:给key设置一个字符串类型的值。默认情况下,如果该key已经存在与redis中,无论之前它是什么数据类型,原来的key的值会被覆盖,并且之前的生存时间会被遗弃;如果key不存在,则给key设value值。
参数介绍:
EX/PX:过期时间,EX代表以秒为单位,PX代表以毫秒为单位,EX和PX不能同时设置
NX:只有当key不存在时才允许设置,也就是使用改参数时只允许新建key
XX:只有当key存在时才允许设置,也就是使用改参数时只允许更新key
返回值:设置成功返回OK,设置失败返回nil

2、mset key value [key value...]
功能:同时为多个key分别设置字符串类型的值,如果其中有的key已经存在于redis之中,则这些key的值将会被新设置的值覆盖。mset是原子的,要么全都设置成功,要么全都设置失败。
返回值:成功返回OK,失败返回nil

3、setex key seconds value
功能:给一个key设置字符串类型的值并指定生存时间,当key已经存在于redis中的时候,原来的key的值无论是什么类型都会被新的值覆盖,并且其生存信息也会被遗弃,因此可见,此命令就完全等同于set key value EX second。另外该命令是原子性的,设置失败或者指定生存时间失败都会恢复到初始状态
返回值:如果成功,返回OK,失败则返回错误信息

4、psetex key milliseconds value
功能与setex一致,只不过指定的生存时间是以毫秒为单位的

5、setnx key value
功能:如果key不存在于redis中,为其设置字符串类型的value;如果key存在,则设置失败,相当于set key value nx
返回值:成功返回1,失败返回0

6、msetnx key value [key value...]
功能:同时为多个不存在于redis中的key设置字符串类型的值,如果其中某一个key存在于redis之中,则会设置失败
返回值:设置成功返回1,失败则返回0

7、setrange key offset value

8、append key value
功能:给字符串类型的值后面追加新的value
返回值:
1、如果key不是字符串类型的,则报错
2、如果key不存在则先给key赋值"",然后追加新的字符串

9、get key
功能:查询字符串类型的key的值
返回值:1、如果key不存在,返回nil
2、如果key不是字符串类型,返回相应的错误信息
3、key存在且是字符串类型,返回key的值

10、mget key [key...]
功能:查询所有key的字符串类型的值,如果其中存在key不是字符串类型或者不存在,返回nil,此命令执行不会失败
返回值:如果key是字符串类型,则返回key的值,如果key不存在或者key不是字符串类型的值,则返回nil

11、getrange key start end
功能:截取字符串类型的key值的从offset的start到end的部分(前后都包含)
返回值:
1、如果key是字符串类型的值,则返回截取后的结果
2、如果key不是字符串类型的值,保错

12、strlen key
功能:获取字符串类型的键key对应的值的字节长度(英文字母1字节,中文在Windows中占2个字节,中文在Linux中占3个字节)
返回值:
1、如果key键不存在,返回0
2、如果key为非字符串类型的键,报错WRONGTYPE
3、如果key存在且为字符串类型,得到key的字符长度

13、getset key value
功能:原子性的给一个key设置value并将旧值返回
返回值:
1、如果key存在且为字符串类型,则返回key的旧值并为key设置新值为value
2、如果key不存在,返回nil
3、如果key不是字符串类型,则返回相应的错误

14、incr key
功能:为字符串类型的且能表示整数的key自增1,比返回自增后的结果。如果key不存在,则会初始化该key为0,然后自增1,并返回自增后的结果
返回值:
1、key不存在或者key是可以表示整数数字(可以为负整数或者0)的字符串类型,返回自增1后的结果
2、如果key不是字符串类型的数据,报错

15、incrby key increment
功能与返回值都类似于incr key相似,只不过,这里自增的量为increment(这里increment必须为整形数,不管是负数还是整数亦或是0)

16、incrbyfloat key increment
功能:为值为数值的(不管是整数还是浮点数)自动增长increment(这里increment只需要是数值类型即可,也可以用科学计数法表示)
返回值:
1、如果key可以表示为浮点数类型的值,则返回增加浮点类型的increment的结果
2、如果key不是数字类型,或者不是字符串类型,报错

17、decr key
功能:为整数类型的字符串自减一,如果key不存在,则先设置key为0,然后再自减一
返回值:
1、如果key为整数类型的字符串,则自减一
2、如果key不是整数类型的字符串或者是其他类型的数据,报错

18、decrby key decrment
功能:与incrby一样,这里只不过是减

19、setbit key offset value

20、getbit key offset
功能:对key所储存的字符串值,获取指定偏移量上的位(bit)。当offset比字符串值的长度大,或者key不存在时,返回0 。
返回值:字符串值指定偏移量上的位

21、bitcount key [start end]
功能:计算位为1的个数

22、bitop operation destkey key [key ...]
operation:
1、and
2、or
3、not
4、xor

23、bitpos key bit [start] [end]

redis字符串基本操作的更多相关文章

  1. redis字符串

    字符串类型是redis的基本类型 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:COMMAND KEY_NAME SET 和GET用于设置和读取key的值 1.SET key ...

  2. JAVASE02-Unit01: API文档 、 字符串基本操作

    API文档 . 字符串基本操作 文档注释 package day01; /** * 文档注释只能定义在三个地方: * 类,方法,常量 * * 文档注释是功能注释,用来说明功能作用 * 在类上使用的目的 ...

  3. Redis 字符串(String)

      Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下: 语法 redis 127.0.0.1:6379> COMMAND KEY_NAME 实例 redis 12 ...

  4. 2016022608 - redis字符串命令集合

    redis字符串命令: Redis字符串命令用于在Redis管理字符串值.使用Redis字符串命令的语法如下所示: redis 127.0.0.1:6379> COMMAND KEY_NAME ...

  5. redis 字符串

    redis 字符串 概述 redis 没有使用 c 语言风格的字符串表示(以 "\0" 作为结尾), 而是使用自定义的 sds 结构 字符串结构 定义位置 (src/sds.h) ...

  6. 关于python字符串基本操作

    python字符串基本操作,比如字符串的替换.删除.截取.复制.连接.分割等.都是一些关于字符串的一些方法.下面来列举一些,相信对学习python还是有些帮助的. 1.去除空格--strp(): &g ...

  7. java对redis的基本操作,ZZ

    java对redis的基本操作 http://www.cnblogs.com/edisonfeng/p/3571870.html

  8. redis 字符串的管理的一点理解

    redis字符串可以实现通过地址偏移找到所在结构体的首地址,struct sdshdr *sh = (void *)(s - (sizeof(struct sdshdr))) 也就是通过buf地址可以 ...

  9. Python操作redis字符串(String)详解 (三)

    # -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1.SET 命令用于设置 ...

随机推荐

  1. 配置两台Azure服务器,一台加入另一台的ad域加入不进去的问题

    AD服务器   10.0.0.4 数据库服务器    10.0.0.5 将数据库服务器加入到AD域中,需要将Azure的DNS改成10.0.0.4 Copy一下

  2. SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springbot22-modules/ 本文出自方志朋的博客 这篇文 ...

  3. 你不知道的javaScript笔记(6)

    语法 语句表达式 句子是完整表达某个意思的一组词,由一个或多个短语组成,他们之间由标点符号或者连接词连接起来. 语句相当于句子,表达式相当于短语,运算符则相当于标点符号和连接词. JavaScript ...

  4. jquery获取父级元素、子级元素、兄弟元素

    1:$(this).parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent ...

  5. Java Iterator ListIterator 理解

    一. Iterator 常用操作 next hasNext remove 先上源码:JDK8 简化版本,用于说明问题 private class Itr implements Iterator< ...

  6. 汇编:采用址表的方法编写程序实现C程序的switch功能

    //待实现的C程序 1 void main() { ; -) { : printf("excellence"); break; : printf("good") ...

  7. (转)手游应该怎么做 UI 设计?

    之前一直做互动设计,在UI上有一些积累. 转战手游后发现,有着标准.互动方式.用户行为等等与常规大屏UI设计的不同,但是在设计流程,思考方式上是一样的. 以目前项目中一个界面为例(未完成版本)来说一下 ...

  8. php获取客户端IP地址、所在地、操作系统、浏览器信息

    本实例主要实现获取客户端的IP,再根据获取的IP获取所在地,还可以获取用户当前电脑使用的操作系统以及用户是通过什么浏览器进行访问的. 您可以在这里查看具体演示和下载demo  http://www.j ...

  9. Git----使用WebHook实现代码自动部署

    起因: 经常本地push到gitee等线上代码仓库,然后登陆服务器在进行pull,很麻烦,想偷懒怎么办?使用git的webhook实现! 1.实现原理 1.1本地提交推送 1.2线上仓库监听push动 ...

  10. EpiiServer 更快捷更方便的php+nginx环境定制化方案

    EpiiServer是什么 更快捷更方便的php+nginx多应用部署环境. github仓库首页 https://github.com/epaii/epii-server gitee仓库 https ...