Redis 有 string、list、set、zset、hash数据类型。string类型是最基础的,其他类型都是在string类型上去建立的,所以了解熟悉string类型的常用操作对于学习redis非常必要。

APPEND:向键的值后面追加字符串,并且返回追加后的值长度

127.0.0.1:[]> get hello
"world"
127.0.0.1:[]> APPEND hello wonderful
(integer)
127.0.0.1:[]> get hello
"worldwonderful"

SETBIT:设置或清除指定偏移位的值(比特位从左往右算)

GETBIT:获取指定位的比特值

BITCOUNT:获取指定字节范围中有多少位为 1

127.0.0.1:[]> set andy 'a'
OK
127.0.0.1:[]> get andy
"a"
127.0.0.1:[]> SETBIT andy
(integer)
127.0.0.1:[]> SETBIT andy
(integer)
127.0.0.1:[]> GET andy
"b"
127.0.0.1:[]> GETBIT andy
(integer)
127.0.0.1:[]> BITCOUNT andy
(integer)

INCR:值递增

INCRBY:按照指定值递增

INCRBYFLOAT:指定浮点数递增

DECR:值递减

DECRBY:按照指定值递减

127.0.0.1:[]> INCRBY counter
(integer)
127.0.0.1:[]> DECRBY counter
(integer)
127.0.0.1:[]> INCRBYFLOAT counter 1.6
"8.6"
# 如果值为非int型则会报错
127.0.0.1:6379[7]> INCR key3
(error) ERR value is not an integer or out of range

GET:返回键的值

GETRANGE:获取值指定范围

GETSET:设置值并且返回原来的值

127.0.0.1:[]> GETSET key3 test_key3
"value3"
127.0.0.1:[]> get key3
"test_key3"
127.0.0.1:6379[7]> GETRANGE key3 0 3
"test"

MGET:批量获取值,如果对应键不存在会使用 nil 代替,按指定顺序返回

MSET:批量设置键值对,相比 SET 节省了网络时间,但如果一次性设置太多可能会导致阻塞

127.0.0.1:[]> MSET a  b  c  d
OK
127.0.0.1:[]> MGET a b c d
) ""
) ""
) ""
) ""

SET:设置键值对

语法:set key value [expiration EX seconds|PX milliseconds] [NX|XX]
  expiration:设置过期时间,EX 以秒为单位, PX 以毫秒为单位
  NX:键必须不存在才能设置成功
  XX:键必须存在才能设置成功

SETNX:同等于 SET 指定 NX 参数

127.0.0.1:[]> get test1
(nil)
127.0.0.1:[]> GET redis
"best"
127.0.0.1:[]> SETNX redis "good"
(integer)
127.0.0.1:[]> SETNX test1 "good"
(integer)

SETEX:设置键值对,并且指定过期时间,同等于 SET 指定 EX 参数。

127.0.0.1:[]> SETEX test1  "test1"
OK
127.0.0.1:[]> get test1
"test1"
127.0.0.1:[]> get test1
(nil)

MSETNX:等同于 MSET 和 SETNX 结合

PSETEX:等同于 SET 设置 PX 参数

SETRANGE:修改值指定范围的内容

127.0.0.1:[]> set redis pest
OK
127.0.0.1:[]> SETRANGE redis b
(integer)
127.0.0.1:[]> get redis
"best"

STRLEN:返回值的长度,以字节为单位,注意每个中文字符占3个字节

参考文档:《Redis开发与运维》、Redis官方文档

参考网络文件:理解setbit中的bit;https://www.zhihu.com/question/27672245

理解SETBIT、BITCOUNT等命令推荐博客:https://blog.csdn.net/u011489043/article/details/78990162

Redis string类型常用操作的更多相关文章

  1. Redis学习第二课:Redis String类型及操作

    Strings类型 String是最简单的类型,一个Key对应一个Value,String类型是二进制安全的,可以包含任何数据,比如jpg图片或序列化的对象. Strings类型的操作: Set:设置 ...

  2. redis入门:介绍、特点、安装、各类型常用操作

    一.redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. Redis支持多种类型的数据结构,如 字符串(strings), 散列(ha ...

  3. [置顶] Redis String类型数据常用的16条命令总结

    Redis String类型数据常用的16条命令总结 描述:String 类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比 ...

  4. [redis] redis 对string类型数据操作

    package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...

  5. Redis - string类型操作

    以个人信息为例操作string类型 设置操作: set:     set key value            创建key-value名值对 setnx:      setnx key value ...

  6. Redis基础类型常用操作命令

    Redis基础类型常用操作命令 概念:Redis是用C语言开发的一个开源的高性能键值对数据库. 特征: 数据间没有必然的联系 内部采用单线程机制进行工作 高性能 多数据类型支持 字符串类型 Strin ...

  7. 第三百节,python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型

    python操作redis缓存-其他常用操作,用于操作redis里的数据name,不论什么数据类型 delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env pyt ...

  8. redis的keys常用操作及redis的特性

    redis的keys常用操作 1.获得所有的keys: keys * 2.可以模糊查询 keys:keys  my* 3.删除keys:del mymkey1 mykey2 4.是否存在keys:ex ...

  9. Redis集合的常用操作指令

    Redis集合的常用操作指令 Sets常用操作指令 SADD 将指定的元素添加到集合.如果集合中存在该元素,则忽略. 如果集合不存在,会先创建一个集合然后在添加元素. 127.0.0.1:6379&g ...

随机推荐

  1. js对象—类型和属性特性

    前言 权威指南中摘要的,工作中用不到的,重要的js基础. 三类对象两类属性 内置对象(native object) 是由ECMScript规范定义的对象或者类.例如:函数,数组,日期,正则... 宿主 ...

  2. 面向对象-mixin设计模式的应用(多继承应用场景)

    什么是设计模式? 设计模式只是一种开发思想.不是什么固定的格式. 前人的好的思想,我们后人拿过来用! mixin设计模式: 1.mixin设计迷失可以在不对类的内容的修改前提下,扩展类的功能(添加父类 ...

  3. [Usaco2011 Dec]Grass Planting

    Description Farmer John has N barren pastures connected by N-1 bidirectional roads, such that there ...

  4. G - B-number

    #include<stdio.h> #include<string.h> using namespace std; typedef long long ll; ]; ][][] ...

  5. asyncio模块

    asyncio模块   这是官网也非常推荐的一个实现高并发的一个模块,python也是在python 3.4中引入了协程的概念. asyncio 是干什么的? 异步网络操作 并发 协程 python3 ...

  6. 洛谷P2599||bzoj1413 [ZJOI2009]取石子游戏

    bzoj1413 洛谷P2599 根本不会啊... 看题解吧 #include<cstdio> #include<algorithm> #include<cstring& ...

  7. JAVA Debug调试技术

    System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常,不过它和另外一个e.printStackTrace()方法不同.后者也是打印出异常,但是它还将显示出更深的调用 ...

  8. python_18(Django基础)

    第1章 web框架的本质 1.1 socket 1.2 空格后面是主体内容 1.3 HTTP协议 1.3.1 响应流程 1.4 HTTP请求方法 1.5 HTTP工作原理 1.6 URL 1.7 HT ...

  9. Spark Mllib里如何将数据集按比例随机地分成trainData、testData和validationData数据集(图文详解)

    不多说,直接上干货! 具体详情见 Hadoop+Spark大数据巨量分析与机器学习整合开发实战的第11章 电影推荐引擎

  10. No bean named 'springSecurityFilterChain' is defined

    1.问题 本文讨论Spring安全配置问题 - 应用程序引导过程抛出以下异常: SEVERE: Exception starting filter springSecurityFilterChain ...