返回顶部
首页 > 资讯 > 数据库 >NoSQL----Redis 2.4--String
  • 553
分享到

NoSQL----Redis 2.4--String

2024-04-02 19:04:59 553人浏览 独家记忆
摘要

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


一、简介:string: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或JSON对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M.

二、应用场景:

    实时记录网站每天的的PV和UV

    实时新浪微博每个账号关注和被关注人数。


三、常用操作:

1、set方法:

set key value

将key的值设为value。

如果key已经存在,set就覆盖旧值。

例如:redis> set color red

    redis> get color

       "red"

    redis> set color black

    redis> get color

       "black"

2、setnx方法:

setnx key value

将key的值设为value,当且仅当key不存在。

若key已经存在,则SETNX不覆盖旧值,即保持原值。

SETNX是”SET if Not eXists”(如果不存在,则SET)的简写。

例如:

redis> SETNX job "programmer"  

(integer) 1  job设置成功


redis> SETNX job "code-farmer"  

(integer) 0  job设置失败


redis> GET job  

"programmer"  没有被覆盖


3、setex方法:

SETEX key seconds value

将key的值设为value,并将key的生存时间设为seconds(以秒为单位)。

如果key 已经存在,SETEX命令将覆盖旧值。

注意:这个命令类似于以下两个命令:

SET key value

EXPIRE key seconds  # 设置生存时间

不同之处是,SETEX是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在Redis用作缓存时,非常实用。


4、setrange方法:

setrange key offset value

用value参数覆写给定key所储存的字符串值,从下标offset开始。

redis> set email haha@163.com

redis> get email 

    haha@163.com

redis> setrange email 5 Google.com

redis> get email 

    haha@google.com

redis> setrange email 5 sina.cn

redis> get email 

    haha@sina.cncom

5、mset方法:    

MSET key value [key value ...]

同时设置一个或多个key-value对。

当发现同名的key存在时,MSET会用新值覆盖旧值,如果你不希望覆盖同名key,请使用MSETNX命令。

MSET是一个原子性(atomic)操作,所有给定key都在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况,不可能发生。

redis> MSET date "2015.11.11" time "9.09a.m." weather "sunny"
OK

6、append方法:

APPEND key value

如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。

如果key不存在,APPEND就简单地将给定key设为value,就像执行SET key value一样。


# 情况1:对不存在的key执行APPEND

redis> EXISTS myphone  # 确保myphone不存在
(integer) 0

redis> APPEND myphone "mi"  # 对不存在的key进行APPEND,等同于SET myphone "mi"
(integer) 5 # 字符长度


# 情况2:对字符串进行APPEND

redis> APPEND myphone " - 1110"
(integer) 12  # 长度从5个字符增加到12个字符

redis> GET myphone  # 查看整个字符串
"mi - 1110"

7、get方法:

get key

返回key所关联的字符串值。

如果key不存在则返回特殊值nil

假如key储存的值不是字符串类型,返回一个错误,因为GET只能用于处理字符串值。

redis> GET animate
(nil)

redis> SET animate "anohana"
OK

redis> GET animate
"anohana"

8、mget方法:

MGET key [key ...]

返回所有(一个或多个)给定key的值。

如果某个指定key不存在,那么返回特殊值nil。因此,该命令永不失败。

9、getrange方法:

GETRANGE key start end

返回key中字符串值的子字符串,字符串的截取范围由startend两个偏移量决定(包括startend在内)。

负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个,以此类推。

GETRANGE通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。

备注:在<=2.0的版本里,GETRANGE被叫作SUBSTR。

redis> SET greeting "hello, my friend"
OK

redis> GETRANGE greeting 0 4  # 返回索引0-4的字符,包括4。
"hello"

redis> GETRANGE greeting -1 -5  # 不支持回绕操作,必须从前往后截取
""

redis> GETRANGE greeting -3 -1  # 负数索引
"end"

redis> GETRANGE greeting 0 -1  # 从第一个到最后一个
"hello, my friend"

redis> GETRANGE greeting 0 1008611  # 值域范围不超过实际字符串,超过部分自动被符略"hello, my friend"


GETSET key value
将给定key的值设为value,并返回key的旧值。
当key存在但不是字符串类型时,返回一个错误。

redis> GETSET mail xxx@google.com  # 因为mail之前不存在,没有旧值,返回nil
(nil)

redis> GETSET mail xxx@yahoo.com  # mail被更新,旧值被返回
"xxx@google.com"

strlen key
返回key所储存的字符串值的长度。
当key储存的不是字符串值时,返回一个错误。
当 key不存在时,返回0。
redis> SET mykey "Hello world"
OK

redis> STRLEN mykey
(integer) 11

redis> STRLEN nonexisting # 不存在的key长度视为0
(integer) 0

12、incr方法:

INCR key

将key中储存的数字值+1。

如果key不存在,以0为key的初始值,然后执行INCR操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在64位(bit)有符号数字表示之内。

redis> SET page_view 20
OK

redis> INCR page_view
(integer) 21

redis> GET page_view    # 数字值在Redis中以字符串的形式保存
"21"

13、incrby方法:

INCRBY key increment

key所储存的值加上增量increment

如果key不存在,以0key的初始值,然后执行INCRBY命令。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在64位(bit)有符号数字表示之内。

关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令。


# 情况1:key存在且是数字值

redis> SET rank 50  # 设置rank为50
OK

redis> INCRBY rank 20  # 给rank加上20
(integer) 70

redis> GET rank
"70"

redis> INCRBY rank -20  # 给rank加上-20
(integer) 50

# 情况2:key不存在

redis> EXISTS counter
(integer) 0

redis> INCRBY counter 30
(integer) 30

redis> GET counter
"30"


# 情况3:key不是数字值

redis> SET book "long long ago..."
OK

redis> INCRBY book 200
(error) ERR value is not an integer or out of range

key中储存的数字值-1。
如果key不存在,以0为key的初始值,然后执行DECR操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在64位(bit)有符号数字表示之内。
关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令。
 情况1:对存在的数字值key进行DECR

redis> SET failure_times 10
OK

redis> DECR failure_times
(integer) 9


# 情况2:对不存在的key值进行DECR

redis> EXISTS count
(integer) 0

redis> DECR count
(integer) -1


# 情况3:对存在但不是数值的key进行DECR

redis> SET company YOUR_CODE_SUCKS.LLC
OK

redis> DECR company
(error) ERR value is not an integer or out of range
15、decrby方法:

DECRBY key decrement

将key所储存的值减去减量decrement。

如果key不存在,以0为key的初始值,然后执行DECRBY操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在64位(bit)有符号数字表示之内。

关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令


# 情况1:对存在的数值key进行DECRBY

redis> SET count 100
OK

redis> DECRBY count 20
(integer) 80


# 情况2:对不存在的key进行DECRBY

redis> EXISTS pages
(integer) 0

redis> DECRBY pages 10
(integer) -10

redis> DECRBY pages -20
(integer) 10


您可能感兴趣的文档:

--结束END--

本文标题: NoSQL----Redis 2.4--String

本文链接: https://lsjlt.com/news/35747.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • NoSQL----Redis 2.4--String
    一、简介:string: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字...
    99+
    2024-04-02
  • NoSQL----Redis 2.4--List
    一、概述:1、List:允许出现重复的元素,list可以作为栈(先进后出)或者队列(先进先出)。头元素和尾元素:头元素指的是列表左端/前端第一个元素;尾元素指的是列表右端/后端第一个元素。举个例子,列表li...
    99+
    2024-04-02
  • NoSQL--Redis 2.4--Set
    一、概述:1、在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O...
    99+
    2024-04-02
  • NoSQL----Redis 2.4--Hash
    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。将一个对象存储在Hash类型中会占用更少的内存,并且更方便的存取整个对象。1、hset方法:HSE...
    99+
    2024-04-02
  • NoSQL--Redis 2.4--Sorted Set
    一、概述:Sorted-Set是Set的升级版本,在Set的基础上增加了排序功能。Sorted-Sets对每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的...
    99+
    2024-04-02
  • noSql-redis
    1.NoSql : not only sql 反sql运动2.特点:    kye-value形式存储-不遵循数据的基本要求如sql标准、ACID属性(回滚机制)、表结构非关系型、分布式...
    99+
    2024-04-02
  • redis属于nosql吗
    是的,redis 是 nosql 数据库类型。它采用键值存储数据模型,将数据存储在键值对中,具有缓存、会话管理、实时分析、消息队列、计数器和排名等功能。 Redis 是否属于 NoSQ...
    99+
    2024-04-20
    mysql oracle redis 键值对
  • 非关系型(NoSQL)Redis
    NoSQL数据库的四大分类: 键值存储数据库(Key-Value) 相关产品:Redis 典型应用:内存缓存,主要用于处理大量数据的高访问负载 优势:快速查询 劣势:存储的数据缺少结构化 列存储数据库 相关产品:HBase,R...
    99+
    2020-07-14
    非关系型(NoSQL)Redis
  • Redis-nosql应用场景
                》演变过程           》数据的获取不单单单单是从mysql等关系型数据库中获取了      》商品的基本信息          》商品的评价,描述等      》商品的图片     》商品的波段性的...
    99+
    2014-11-06
    Redis-nosql应用场景 数据库入门 数据库基础教程 数据库 mysql
  • NoSQL - redis 备份/主从
    redis持久化 – 两种方式redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。官方建议:两种方式都打开,同时进...
    99+
    2024-04-02
  • NoSQL--Redis 配置文件
    一、 redis  conf 参数配置: 1、#是否作为守护进程运行:作为后台进程运行。daemonize yes#如以后台进程运行,则需指定一个pid,默认为/va...
    99+
    2024-04-02
  • Redis入门-什么是NoSQL
    原文:https://www.cnblogs.com/xxhxs-21/p/14630103.html...
    99+
    2021-07-14
    Redis入门-什么是NoSQL 数据库入门 数据库基础教程
  • NoSQL之redis(主从复制)
    1.redis主从复制的介绍:     持久化保证了即使redis服务器重启也不会丢失数据,因为redis服务器重启后将硬盘上持久化的数据恢复到内存中, 但是当redis服务器的硬盘损坏了可能会导致数据丢失...
    99+
    2024-04-02
  • nosql redis-2.8.10 源码安装
    redis介绍:    redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached...
    99+
    2024-04-02
  • NoSQL与Memcached、Redis、MongoDB概述
    一、NoSQL介绍   非关系型数据库(而mysql、oracle、sqlserver都是关系型数据库)1. 特点数据之间无关系,随意扩展数据存储简单,可以存在内存中,读写速度快不需要建...
    99+
    2024-04-02
  • NoSQL之redis(常用命令)
    keys           (1)介绍:返回满足条件的所有key,支持正则            (2)语法:keys key            (3)举例:                     ...
    99+
    2024-04-02
  • NoSQL之redis(Jedis连接 API)
    工程搭建:    (1)介绍:redis不仅使用命令可以操作,现在基本上主流的语言都有客户端支持,比如:java、C、C#、C++、php、Node.js、Go等。&...
    99+
    2024-04-02
  • redis配置文件redis.conf中文版(基于2.4)
    # Redis示例配置文件 # 注意单位问题:当需要设置内存大小的时候,可以使用类似1k、5GB、4M这样的常见格式:## 1k => 1000 bytes# 1kb => 1024 byte...
    99+
    2022-06-04
    配置文件 中文版 redis
  • NoSQL之redis(分布式集群)
    1.集群架构: 解释: 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。 节点的fail是通过集群中超过半数的节点检测失效时才生效. 客户端与redis节点直...
    99+
    2024-04-02
  • NoSQL之redis(持久化策略)
    1.rdb方式     (1)介绍:redis默认的是通过快照来将数据持久化到磁盘中。     (2)持久化的条件:                         在900秒有一次写入,或者在300有1...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作