首页 > 数据库 >Redis之String

Redis之String

时间:2024-05-29 21:12:33浏览次数:21  
标签:127.0 String get 0.1 key1 Redis 6379 integer

Redis 数据类型

  • string(字符串): 基本的数据存储单元,可以存储字符串、整数或者浮点数。
  • hash(哈希):一个键值对集合,可以存储多个字段。
  • list(列表):一个简单的列表,可以存储一系列的字符串元素。
  • set(集合):一个无序集合,可以存储不重复的字符串元素。
  • zset(sorted set:有序集合): 类似于集合,但是每个元素都有一个分数(score)与之关联。
  • 位图(Bitmaps):基于字符串类型,可以对每个位进行操作。
  • 超日志(HyperLogLogs):用于基数统计,可以估算集合中的唯一元素数量。
  • 地理空间(Geospatial):用于存储地理位置信息。
  • 发布/订阅(Pub/Sub):一种消息通信模式,允许客户端订阅消息通道,并接收发布到该通道的消息。
  • 流(Streams):用于消息队列和日志存储,支持消息的持久化和时间排序。
  • 模块(Modules):Redis 支持动态加载模块,可以扩展 Redis 的功能。

String(字符串)

  • string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
  • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据,比如jpg图片或者序列化的对象。
  • string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

常用命令

SET key value:设置键的值。
GET key:获取键的值。
INCR key:将键的值加 1。
DECR key:将键的值减 1。
APPEND key value:将值追加到键的值之后

案例

# redis-cli -p 6379
127.0.0.1:6379> set key1 v1                 #设置key的值
OK
127.0.0.1:6379> get key1                    #获取key的值
"v1"
127.0.0.1:6379> keys *
1) "key1"
127.0.0.1:6379> append key1 "hello"         #追加字符串
(integer) 7
127.0.0.1:6379> get key1
"v1hello"

127.0.0.1:6379> strlen key1                 #获取当前字符串的长度
(integer) 7

127.0.0.1:6379> EXISTS key1                 #判断当前key是否存在
(integer) 1

127.0.0.1:6379> APPEND name xiaoli          #追加字符串,如果当前key不存在,相当于set
(integer) 6

  • 字符串自增减、步长
127.0.0.1:6379> SET views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> INCR views                  #自增1
(integer) 1
127.0.0.1:6379> get views
"1"
127.0.0.1:6379> INCR views
(integer) 2
127.0.0.1:6379> DECR views                  #自减1
(integer) 1
127.0.0.1:6379> DECR views
(integer) 0
127.0.0.1:6379> get views
"0"

127.0.0.1:6379> INCRBY views 10             #自增步长10
(integer) 10
127.0.0.1:6379> INCRBY views 10
(integer) 20
127.0.0.1:6379> DECRBY views 6              #自减步长10
(integer) 14
  • 截取字符串
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> KEYS *
(empty array)
127.0.0.1:6379> set key1 helloxiaoming
OK
127.0.0.1:6379> get key1
"helloxiaoming"
127.0.0.1:6379> GETRANGE key1 0 3             #截取字符串【0,3】
"hell"
127.0.0.1:6379> GETRANGE key1 0 -1            #获取全部字符串
"helloxiaoming" 
  • 替换字符串
127.0.0.1:6379> set key2 sdagasdg
OK
127.0.0.1:6379> get key2
"sdagasdg"
127.0.0.1:6379> SETRANGE key2 1 00            #替换指定位置开始的字符串
(integer) 8
127.0.0.1:6379> get key2
"s00gasdg"
  • setex&setnx

setex (set with expire) #设置过期时间
setnx (set if not exist) #不存在再设置(在分布式锁中常常使用!!!)


127.0.0.1:6379> SETEX key3 30 hello           #设置key3的值为hello,30s过期。
OK

127.0.0.1:6379> ttl key3
(integer) 19

127.0.0.1:6379> SETNX mykey redis             #设置mykey的值为redis,返回结果为1,设置成功    
(integer) 1
127.0.0.1:6379> keys *
1) "key1"
2) "mykey"
3) "key2"
127.0.0.1:6379> setnx mykey mysql             #设置mykey的值为mysql,返回结果为0,设置失败,因为已近存在
(integer) 0
127.0.0.1:6379> get key3
(nil)
127.0.0.1:6379> get mykey
"redis"
  • mset&mget
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3           #同时设置多个值
OK
127.0.0.1:6379> KEYS *
1) "k2"
2) "k3"
3) "k1"

127.0.0.1:6379> MGET k1 k2 k3                    #同时获取多个值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> MSETNX k1 v1 k4 v4               #msetnx是一个原子性操作,要么一起成功,要么一起失败。
(integer) 0
127.0.0.1:6379> get k4
(nil)
  • 对象
127.0.0.1:6379> mset user:1 {name:zhangsan,age:100}      #设置一个user:1的对象,值为json字符来保存一个对象! user:{id}:{filed}
OK

127.0.0.1:6379> mset user:1:name zhangsan user:1:age 1   
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "user:1:age"
2) "1"
  • getset
127.0.0.1:6379> GETSET db redis             #如果不存在,则返回nil
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> GETSET db mysql             #如果存在值,取旧值,设新值
"redis"
127.0.0.1:6379> get db
"mysql"

标签:127.0,String,get,0.1,key1,Redis,6379,integer
From: https://www.cnblogs.com/OpenSourceSite/p/18220487

相关文章

  • Redis篇 哈希表在redis中的命令
    哈希命令一.哈希表的基本认识二.哈希表在redis中的命令1.hset,hget2.hdel3.hkeys,hvals4.hexists5.hgetall6.hmget7.hlen8.hincrby和hincrbyfloat一.哈希表的基本认识在JAVA数据结构中,我们就已经接触到了哈希表,在当时,我们主要用到的哈希表是一次探测法,二次探测......
  • Redis的启动方式
    目录 1、直接启动2、通过指定配置文件启动3、使用Redis启动脚本设置开机自启动4、windows下开机自启动 1、直接启动下载官网下载:http://redis.io/download安装tarzxvfredis-2.8.9.tar.gzcdredis-2.8.9#直接make编译make#可使用root用户执行`makeinstall`......
  • redis 服务安装
      1、redis配置文件  2、ip和端口配置   3、密码配置   4、启动服务,在文件目录下启动cmd输入redis-serverredis.windows.conf命令   5、安装服务,redis-server--service-installredis.windows.conf 6、可以在服务中看到redis相关服务 ......
  • Redis之初探
    Redis是什么Redis是一个开源,内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。Key-Value格式的缓存和存储服务器;数据结构服务器,它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型;所有数据集必须在内存中使用,磁盘是用来持久数据的。是一......
  • c++ string 使用例子
      ===============一文读懂C++String类在算法竞赛中的常见用法string相较于C语言的字符数组可方便太多了,在算法竞赛中能大大节省我们的时间。以下是我在刷题中会使用到的常见String用法。注释都写好了。#include<iostream>#include<string>usingnamespacestd;int......
  • C# String.Format 数值类型格式化字符串 保留两位小数
    统计学中普遍遵循四舍六入五成双例:32.6752-》32.67例:32.6755-》32.67注:String.Format() .framework4.7.2是四舍五入;.net6.net7则符合四舍六入五成双;其余版本没有进行测试。//.framework4.7.2varDistance=32675;vara=String.Format("{0:N2}",Distance/100......
  • redis数据类型之string,list
    华子目录key操作说明`SCANcursor[MATCHpattern][COUNTcount]``dump`与`restore``keys通配符`示例演示`string`说明`setbitkeyoffsetvalue``getbitkeyoffset``setrangekeyoffsetvalue``List`结构图相关命令`lremkeycountvalue``ltrimkeycountvalu......
  • redis 安装、使用手册
    Linux系统Redis使用手册一、引言Redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息代理。由于其出色的性能和灵活性,Redis在开发社区中广受欢迎。本手册将详细介绍Redis在Linux系统中的安装、每种数据结构的命令使用以及每种数据类型的应用场景。二......
  • JavaSE:String类常用方法(巨详细)
    1、引言在学习C语言时,我们就已经了解了字符串,但是在C语言中字符串只能用字符数组或者指针来表示,没有特定的字符串类型,而在Java中,我们有了字符串这一特定的类型---String类。2、String类的常用方法2.1字符串的构造方法在我们定义一个字符串的时候,我们可以使用以下常用的三......
  • SpringBoot升级到3.2.0报错Invalid value type for attribute ‘factoryBeanObjectTyp
    1现象SpringBoot由3.1.0升级为3.2.0时报的错:直接debug进入该行,看到报错的bean信息:看到是MyBatis出问题。2处理MyBatis先想到mybatis-spring版本较低导致。大家应该都用的MyBatisPlus,其实可暂缓升级3.2,等待一段时间,升级MyBatisPlus即可,目前MyBatisPlus的mybatis-spring......