--------------------- 
作者:愤怒的小明 
来源:CSDN 
原文:https://blog.csdn.net/qiwenmingshiwo/article/details/78118541

Redis学习03存储字符串String
一Redis的5种数据类型
二String说明
三赋值
四取值
五删除
六数值增
七数值减
八数值加上某个值
九数值减去某个值
十拼接字符串
Redis学习03——存储字符串(String)
一、Redis的5种数据类型
Redis是一种高级的 key-value 的存储系统,其中value支持五种数据类型

字符串(String)

哈希(hash)

字符串列表(list)

字符串集合(set)

有序字符串集合(sorted set)

key定义的规则

key不要太长,最大不要超过1024个字节,这不仅会消耗内存还会降 低查询效率

key不要太短,如果太短会降低key的可读性

在项目中,key最好有一个统一的命名规范

二、String说明
字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这意味着该类型存入和获取的数据相同。在Redis中字符串类型的Value最多可以容纳的数据长度是 512M。

三、赋值
赋值可以使用 下面的指令

set key value
1
存储 一个字符串,key是键,value是值。如果该key存在则进行覆盖操作,总是返回 OK 
例如

[root@wiming bin]# ./redis-cli
127.0.0.1:6379> set username wiming
OK
1
2
3
4
四、取值
取值使用如下指令

get key
1
获取key多对应的value。如果value不是String类型,redis将返回错误信息。因为get命令只能用于获取字符串的value。如果不存在,返回(nil)

127.0.0.1:6379> get usernamw
(nil)
127.0.0.1:6379> get username
"wiming"
1
2
3
4
5
还可以使用另外一个指令

getset key value
1
先获取key对应的value值,然后在设置该key的值。

127.0.0.1:6379> getset username qiwenming
"wiming"
127.0.0.1:6379> get username
"qiwenming"
1
2
3
4
5
五、删除
删除可以使用以下命令,这个命令,对所有类型的起作用

del key
1
删除key对应的值和key

127.0.0.1:6379> set deltest woshiwimingwoyaocesih
OK
127.0.0.1:6379> get deltest
"woshiwimingwoyaocesih"
127.0.0.1:6379> del deltest
(integer) 1
127.0.0.
1
2
3
4
5
6
7
六、数值增
如果你想让value自增1,那么一个使用下面命令。如果key不存在,其初始值为0,使用下面的命令后其值会变为1。如果value的值不能转成整型,执行以下操作以后,会执行失败并返回相应的错误信息

127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr username
(error) ERR value is not an integer or out of range
1
2
3
4
5
七、数值减
如果你想实现数值减1,操作使用下面的命令,如果没有设置默认值是0。使用命令以后会变-1。如果value不能转成整型,那么就会返回相应的错误信息。

decr key
1
例子

127.0.0.1:6379> decr num2
(integer) -1
127.0.0.1:6379> decr username
(error) ERR value is not an integer or out of range
127.0.0.1:6379> decr num2
(integer) -2

1
2
3
4
5
6
7
8
八、数值加上某个值
要实现key对应的value加上某个值,可以使用下面的命令。increment 为你要加上的值,如果为负数,那么就可以实现减的功能了。

incrby key increment
1
例子

127.0.0.1:6379> incrby num 10
(integer) 11
127.0.0.1:6379> incrby num -5
(integer) 6
1
2
3
4
九、数值减去某个值
要实现key对应的value减去某个值,可以使用下面的命令。decrement 为你要减去的值,如果为负数,那么就可以实现加的功能了。

decrby key decrement
1
例子

127.0.0.1:6379> decrby num2 6
(integer) -8
127.0.0.1:6379> decrby num2 -10
(integer) 2
1
2
3
4
5
十、拼接字符串
下面的指令,可以在我们key对应的字符串后面拼接上我们指定的字符串。如果key不存在,就会创建一个key-value.

append key value
1
例子

127.0.0.1:6379> append appendtest qiwenming
(integer) 9
127.0.0.1:6379> get appendtest
"qiwenming"
127.0.0.1:6379> append appendtest -wiming
(integer) 16
127.0.0.1:6379> get appendtest
"qiwenming-wiming"

Redis学习03——存储字符串(String)的更多相关文章

  1. redis 学习(3)-- String 类型

    redis 学习(3)-- String 类型 String-结构 结构:Key-Value对 Value:可以是字符串.数字,也可以是二进制数组 限制:Value最大值为512MB String-常 ...

  2. Redis数据结构(一)-Redis的数据存储及String类型的实现

    1 引言 Redis作为基于内存的非关系型的K-V数据库.因读写响应快速.原子操作.提供了多种数据类型String.List.Hash.Set.Sorted Set.在项目中有着广泛的使用,今天我们来 ...

  3. redis学习(二)——String数据类型

    一.概述 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的 ...

  4. redis之Hash存储与String存储内存消耗对照

    存储对象User String存储方式: SET media:1155315 939 GET media:1155315 > 939 String结构存储该对象 User243 243600 存 ...

  5. Redis之数据存储结构

    今天去中关村软件园面试,被问到:你做项目用到的Redis处理数据用的什么结构?顿时石化,”用到的结构,不就是key-value嘛,还有什么结构?“.面试官说:“平时除了工作,要加强学习,下面的面试我觉 ...

  6. Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串

    一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...

  7. Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash

    引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...

  8. redis 基本数据类型-字符串(String)

    不瘦原来对redis也是有个大概的了解(就你知道的多), 但是最近和大神聊天的过程中才明白自己知道的简直就是鸡毛蒜皮(让你得瑟),所以不瘦打算从头在捋一遍,顺便把过程也记录下来,如果能给大家在学习re ...

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

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

随机推荐

  1. 03_springboot2.x日志处理

    1.日志框架 ​ 市场上存在非常多的日志框架.JUL(java.util.logging),JCL(Apache Commons Logging),Log4j,Log4j2,Logback.SLF4j ...

  2. CAS机制详解

    目录 1. 定义 2. 实现原理 3. 无版本号CAS实战说明 4. CAS机制在Java中的应用 5. CAS的缺点 1. CPU开销过大 2. 不能保证代码块的原子性 3. ABA问题 6. JA ...

  3. Mapped Statements collection does not contain value for xxx.xxx 错误原因&解决方案

    先贴出详细的报错信息 2019-11-05 10:10:00 [executor-1] ERROR [org.quartz.core.JobRunShell:225] - Job DEFAULT.ef ...

  4. winform 旋转图片

    //img.RotateFlip(RotateFlipType.Rotate90FlipNone); //顺时针旋转90度 RotateFlipType.Rotate90FlipNone //逆时针旋 ...

  5. jdk11.0.2安装

    1.去官网下载合适的jdk 网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.ht ...

  6. Servlet3.0要点小结

    1. 注解配置Servlet @WebServlet name属性: servlet名称 value属性或urlPatterns属性: servlet映射路径, 可配置多个 initParams属性: ...

  7. PostgreSQL:COALESCE函数

    COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. select COALESCE(null,null); //报错 selec ...

  8. barrel shifter, logarthmic shifter and funnel shifter

    1,shifter小集合 (1) simple shift 左移或右移补0 (2) arthmetic shift 左移补0,右移补符号位 (3) barrel shifter 桶型,顾名思义,应该头 ...

  9. 从微服务治理的角度看RSocket、. Envoy和. Istio

    很多同学看到这个题目,一定会提这样的问题:RSocket是个协议,Envoy是一个 proxy,Istio是service mesh control plane + data plane. 这三种技术 ...

  10. groupBy 后附加数量和每组百分比

    SELECT i_State, n, , ) rat FROM ( SELECT * FROM ( ) n FROM planinfo GROUP BY i_State ) t1 ) s ) t