夫陶公清风千古,余又何人,敢称庶几


文章目录

  • 介绍
    • 一、基本命令
      • 1. 赋值与取值
      • 2. 递增数字
    • 二、命令进阶
      • 1. 增加指定的整数
      • 2. 减少指定的整数
      • 3. 增加指定浮点数
      • 4. 向尾部追加值
      • 5. 获取字符串长度
      • 6. 同时获得/设置多个键值
      • 7. 位操作

介绍

字符串类型是Redis中最基本的数据类型,他能存储任何形式的字符串,包括二进制数据,一个字符串类型键允许存储的数据的最大容量是512MB。

一、基本命令

命令 解释
SET key value 设置字段值
GET key 获取字段值
INCR key 递增数字

1. 赋值与取值

赋值: SET key value
取值:GET key

127.0.0.1:6379> set name breez
OK
127.0.0.1:6379> get name
"breez"
127.0.0.1:6379> get other
(nil)
127.0.0.1:6379>

注:当键不存在时会返回空(nil)

实践:使用Java操作Redis数据库:SET
导入maven依赖:

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.5.1</version>
</dependency>
@Testpublic void testSTRING(){Jedis jedis = new Jedis("127.0.0.1");String s = jedis.set("name", "清风");System.out.println("返回值:"+s);String name = jedis.get("name");System.out.println("name:"+name);}
返回值:OK
name:清风

2. 递增数字

INCR key

让当前键值递增,并返回递增后的值。

例:

127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3

如果键值不是整数时,会提示错误

127.0.0.1:6379> set n str
OK
127.0.0.1:6379> incr n
(error) ERR value is not an integer or out of range
127.0.0.1:6379> set n2 1
OK
127.0.0.1:6379> incr n2
(integer) 2
127.0.0.1:6379> incr n2
(integer) 3
127.0.0.1:6379> incr n2
(integer) 4
127.0.0.1:6379>

从上可知n不是整数,而是一个字符串,n2是一个整数

实践:使用Java操作Redis数据库:INCR

 @Testpublic void testINCR(){Jedis jedis = new Jedis("127.0.0.1");Long num1 = jedis.incr("num");Long num2 = jedis.incr("num");Long num3 = jedis.incr("num");System.out.println("执行三次后的值:"+num3);}
执行三次后的值:3

二、命令进阶

命令 解释
INCRBY key increment 增加指定的整数
DECR key 减少整数
DECRBY key decrement 减少指定的整数
INCRBYFLOAT key increment 增加指定的浮点数
APPEND key value 向尾部追加值
STRLEN key 获取字符串长度
MGET key [key …] 同时设置多个键值
MSET key value [key value …] 同时获取多个键的值
GETBIT key offest 获取键指定的位号对应的二进制数(0或1)
SETBIT key offest value 设置键指定位号的二进制数(0或1)
BITCOUNT key [start][end] 统计指定字节范围
BITOP operation destkey key [key …] 对多个字符串类型键进行位运算

1. 增加指定的整数

INCRBY key increment

INCRBY 命令和INCR 命令一样,区别是前者可以通过increment参数指定一次增加的数值
例:

127.0.0.1:6379> incrby num 2
(integer) 2
127.0.0.1:6379> incrby num 2
(integer) 4
127.0.0.1:6379> incrby num 2
(integer) 6
127.0.0.1:6379>

实践:使用Java操作Redis数据库:INCRBY

@Testpublic void testINCRBY(){Jedis jedis = new Jedis("127.0.0.1");jedis.incrBy("num",2);jedis.incrBy("num",2);Long num = jedis.incrBy("num", 2);System.out.println("执行三次后的结果:"+num);}
执行三次后的结果:6

2. 减少指定的整数

DECR key
DECR key increment

用法与INCR命令相同,只不过是让键值递减
例:

  • DECR
127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> decr num
(integer) 8
127.0.0.1:6379> decr num
(integer) 7

实践:使用Java操作Redis数据库:DECR

@Testpublic void testDECR(){Jedis jedis = new Jedis("127.0.0.1");jedis.set("num","10");System.out.println("初始值:"+jedis.get("num"));jedis.decr("num");jedis.decr("num");Long num = jedis.decr("num");System.out.println("递减3次后的值:"+num);}
初始值:10
递减3次后的值:7
  • DECRBY
127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> decrby num 3
(integer) 7
127.0.0.1:6379> decrby num 3
(integer) 4
127.0.0.1:6379> decrby num 3
(integer) 1
127.0.0.1:6379> decrby num 3
(integer) -2

实践:使用Java操作Redis数据库:DECRBY

@Testpublic void testDECRBY(){Jedis jedis = new Jedis("127.0.0.1");jedis.set("num","10");System.out.println("初始值:"+jedis.get("num"));jedis.decrBy("num",3);jedis.decrBy("num",3);Long num = jedis.decrBy("num", 3);System.out.println("递减3次后的值:"+num);}
初始值:10
递减3次后的值:1

3. 增加指定浮点数

INCRBYFLOAT key increment

递增一个双精度浮点数

127.0.0.1:6379> incrbyfloat num 2.6
"2.6"
127.0.0.1:6379> incrbyfloat num 2.6
"5.2"
127.0.0.1:6379> incrbyfloat num 2.6
"7.800000000000001"
127.0.0.1:6379> incrbyfloat num 2.6
"10.4"

实践:使用Java操作Redis数据库:INCRBYFLOAT

@Testpublic void testINCRBYFLOAT(){Jedis jedis = new Jedis("127.0.0.1");jedis.incrByFloat("num",2.6);jedis.incrByFloat("num",2.6);jedis.incrByFloat("num",2.6);Double num = jedis.incrByFloat("num", 2.6);System.out.println("递增4次后的结果:"+num);}
递增4次后的结果:10.4

4. 向尾部追加值

APPEND key value

该命令的作用是向一个键尾部追加值,如果该键不存在,则设置为默认值:value,相当于set key value,返回值是追加后字符串的总长度。
例:

127.0.0.1:6379> set key hello
OK
127.0.0.1:6379> append key world
(integer) 10
127.0.0.1:6379> get key
"helloworld"
127.0.0.1:6379> append key  "  breez"
(integer) 17
127.0.0.1:6379> get key
"helloworld  breez"

注意:如果需要添加空格,需要对字符串添加双引号

实践:使用Java操作Redis数据库:APPEND

@Testpublic void testAPPEND(){Jedis jedis = new Jedis("127.0.0.1");jedis.set("key","hello");System.out.println("追加前:"+jedis.get("key"));jedis.append("key","world");System.out.println("追加后:"+jedis.get("key"));}
追加前:hello
追加后:helloworld

5. 获取字符串长度

STRLEN key

STRLEN命令返回键的长度,如果键不存在则返回0.
例:

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> strlen key
(integer) 0
127.0.0.1:6379> set key breez
OK
127.0.0.1:6379> strlen key
(integer) 5

实践:使用Java操作Redis数据库:STRLEN

@Testpublic void testSTRLEN(){Jedis jedis = new Jedis("127.0.0.1");Set<String> keys = jedis.keys("*");System.out.println("缓存中所有的键:");System.out.println(keys);jedis.set("key","breez");String key = jedis.get("key");Long strlen = jedis.strlen("key");System.out.println(key+"的长度为:"+strlen);}
缓存中所有的键:
[]
breez的长度为:5

6. 同时获得/设置多个键值

  • MGET

MGET key [ key …]

  • MSET

MSET key value [key value …]

注意:MGET/MSET 与GET/SET 相似,但是前者可以设置多个键的键值。

例:

127.0.0.1:6379> mset name breez age 22 sex male
OK
127.0.0.1:6379> keys *
1) "sex"
2) "name"
3) "age"
127.0.0.1:6379> mget name age sex
1) "breez"
2) "22"
3) "male"

实践:使用Java操作Redis数据库:MSETAndMGET

@Testpublic void testMSETAndMGET(){Jedis jedis = new Jedis("127.0.0.1");jedis.mset(new String[]{"name","breez","age","22","sex","male"});List<String> mget = jedis.mget(new String[]{"name","age","sex"});System.out.println(mget);}
[breez, 22, male]

7. 位操作

GETBIT key offset
SETBIT key offset value
BITCOUNT key [start][end]
BITOP operation destkey key [key …]


Redis中文官方网站:http://www.redis.cn


未完待续,持续更新中...

Redis数据类型--字符串类型相关推荐

  1. redis 自增_坏了,Redis的字符串类型竟然被张三学明白了?

    Redis简介 Redis(Remote dictionary server) 是一款高性能的开源非关系型缓存数据库,Redis使用C语言编写,支持多种类型的数据结构,如字符串,字典,列表,集合,有序 ...

  2. python redis缓存_第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

  3. Redis 数据类型 Strings 类型详解

    Redis 数据类型 Strings 类型详解 bitmap 操作 SETBIT • SETBIT key offset value 起始版本:2.2.0 时间复杂度:O(1) 设置或者清空key的v ...

  4. ( 4 )MySQL中的数据类型(字符串类型)

    MySQL中的数据类型(字符串类型) 字符长类型 六中数据库中的数据类型 char , varchar , text ,blob,enum,set char和varchar char定长:磁盘空间比较 ...

  5. 保存到redis的字符串类型出现斜杆_深入浅出Redis:这次从Redis底层数据结构开始...

    1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...

  6. MySQL数据类型--------字符串类型实战

    1. 背景 * MySQL支持的字符串类型有CHAR.VARCHAR.二进制.var二进制.BLOB.文本等等. 2. 字符串类型所需的存储和值范围 类型 说明 N的含义 是否有字符集 最大长度 CH ...

  7. 【Flutter】Dart 数据类型 字符串类型 ( 字符串定义 | 字符串拼接 | 字符串 API 调用 )

    文章目录 I . 字符串定义 I . 字符串拼接 III . 字符串 API 调用 IV . 字符串 Demo 示例 I . 字符串定义 使用单引号 ' ' 和 双引号 " " 都 ...

  8. mediumtext和string转换_数据类型 - 字符串类型 - 《TiDB v3.0 用户文档》 - 书栈网 · BookStack...

    字符串类型 TiDB 支持 MySQL 所有的字符串类型,包括 CHAR.VARCHAR.BINARY.VARBINARY.BLOB.TEXT.ENUM 以及 SET,完整信息参考这篇文档. 类型定义 ...

  9. python isnumber_Python正课18 —— 基本数据类型 - 字符串类型

    一:定义 msg = 'hello' #本质:name = str('任意形式内容') 二.类型转换 数据类型转换:str()可以将任意数据类型转换成字符串类型,例如 # msg = 'hello' ...

最新文章

  1. shell介绍,命令历史,命令补全和别名 ,通配符, 输入输出重定向
  2. [译]Spring Session 与 Spring Security
  3. 三、开发调试应用程序
  4. flask manage port_后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统...
  5. 万兆网卡驱动_家庭基础万兆网络——最简单的方案
  6. Java Spring AspectJ
  7. python selenium右键另存为_手把手教你系列练习篇之1python+ selenium自动化测试(详细教程)...
  8. 我与电脑1-初识电脑
  9. word计算机基础知识试题及答案,计算机基础知识试题及答案(一)
  10. 绝地求生最新服务器维护,绝地求生更新维护公告最新:3月10日吃鸡停机维护多久 几点开始?...
  11. 【果壳笔记】生物信息学——陈小伟老师部分
  12. Project Sumatra
  13. 可能是最好的设计模式入门教程——里氏替换原则
  14. Orz是什么意思……
  15. 目前主流的app开发方式
  16. KVM内核文档阅读笔记
  17. Android实现发短信,打电话
  18. 面试项目2:基于Spark2.x的电商大数据统计分析平台
  19. 文件域跟图像域-制作QQ主页信息
  20. PHP数字字母汉字验证码实现

热门文章

  1. Pycharm 2019 添加 docker 解释器
  2. 堆排序和归并排序 java代码实现
  3. python机器学习常用包下载安装以及使用案例汇总
  4. 宜搭小技巧|找不到应用怎么办?群应用一键直达
  5. 3类代码安全风险如何避免?
  6. 如何用阿里云实行全链路数据追踪
  7. 如何优雅地在云上“摆摊” 直播带货,这些技术很重要
  8. 从OpenKruise用户疑问开始理解K8s资源更新机制
  9. Spring Cloud Alibaba 新一代微服务解决方案
  10. GAN的一些很酷的应用