Redis数据类型--字符串类型
夫陶公
清风
千古,余又何人,敢称庶几
文章目录
- 介绍
- 一、基本命令
- 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数据类型--字符串类型相关推荐
- redis 自增_坏了,Redis的字符串类型竟然被张三学明白了?
Redis简介 Redis(Remote dictionary server) 是一款高性能的开源非关系型缓存数据库,Redis使用C语言编写,支持多种类型的数据结构,如字符串,字典,列表,集合,有序 ...
- python redis缓存_第二百九十五节,python操作redis缓存-字符串类型
python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
- Redis 数据类型 Strings 类型详解
Redis 数据类型 Strings 类型详解 bitmap 操作 SETBIT • SETBIT key offset value 起始版本:2.2.0 时间复杂度:O(1) 设置或者清空key的v ...
- ( 4 )MySQL中的数据类型(字符串类型)
MySQL中的数据类型(字符串类型) 字符长类型 六中数据库中的数据类型 char , varchar , text ,blob,enum,set char和varchar char定长:磁盘空间比较 ...
- 保存到redis的字符串类型出现斜杆_深入浅出Redis:这次从Redis底层数据结构开始...
1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...
- MySQL数据类型--------字符串类型实战
1. 背景 * MySQL支持的字符串类型有CHAR.VARCHAR.二进制.var二进制.BLOB.文本等等. 2. 字符串类型所需的存储和值范围 类型 说明 N的含义 是否有字符集 最大长度 CH ...
- 【Flutter】Dart 数据类型 字符串类型 ( 字符串定义 | 字符串拼接 | 字符串 API 调用 )
文章目录 I . 字符串定义 I . 字符串拼接 III . 字符串 API 调用 IV . 字符串 Demo 示例 I . 字符串定义 使用单引号 ' ' 和 双引号 " " 都 ...
- mediumtext和string转换_数据类型 - 字符串类型 - 《TiDB v3.0 用户文档》 - 书栈网 · BookStack...
字符串类型 TiDB 支持 MySQL 所有的字符串类型,包括 CHAR.VARCHAR.BINARY.VARBINARY.BLOB.TEXT.ENUM 以及 SET,完整信息参考这篇文档. 类型定义 ...
- python isnumber_Python正课18 —— 基本数据类型 - 字符串类型
一:定义 msg = 'hello' #本质:name = str('任意形式内容') 二.类型转换 数据类型转换:str()可以将任意数据类型转换成字符串类型,例如 # msg = 'hello' ...
最新文章
- shell介绍,命令历史,命令补全和别名 ,通配符, 输入输出重定向
- [译]Spring Session 与 Spring Security
- 三、开发调试应用程序
- flask manage port_后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统...
- 万兆网卡驱动_家庭基础万兆网络——最简单的方案
- Java Spring AspectJ
- python selenium右键另存为_手把手教你系列练习篇之1python+ selenium自动化测试(详细教程)...
- 我与电脑1-初识电脑
- word计算机基础知识试题及答案,计算机基础知识试题及答案(一)
- 绝地求生最新服务器维护,绝地求生更新维护公告最新:3月10日吃鸡停机维护多久 几点开始?...
- 【果壳笔记】生物信息学——陈小伟老师部分
- Project Sumatra
- 可能是最好的设计模式入门教程——里氏替换原则
- Orz是什么意思……
- 目前主流的app开发方式
- KVM内核文档阅读笔记
- Android实现发短信,打电话
- 面试项目2:基于Spark2.x的电商大数据统计分析平台
- 文件域跟图像域-制作QQ主页信息
- PHP数字字母汉字验证码实现