Redis的5种数据结构:string、list、hash、set和zset;

Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value 的结构不一样。

基本操作

1、string表示的是一个可变的字节数组;

2、Redis的字符串时动态字符串,是可以修改的;

3、内部结构实现上类似与Java的ArrayList,用预分配冗余空间的方式来减少内存的频繁分配;

4、字符串长度小于1M时,扩容都是加倍现有的空间;

5、长度大于1M时,扩容时指挥多扩1M的空间;

6、字符串最大长度为512M;

7、字符串没有提供子串插入和子串删除方法;

# 初始化字符串(set 键 值)
localhost:0>set muscleape com.muscleape.www
"OK"
# 获取字符串内容(get 键)
localhost:0>get muscleape
"com.muscleape.www"
# 获取字符串的长度(strlen 键)
localhost:0>strlen muscleape
"17"
# 获取子串(getrange 键 开始下标 结束下标)
localhost:0>getrange muscleape 4 12
"muscleape"
# 覆盖子串(setrange 键 开始位置 替换串)
localhost:0>setrange muscleape 4 wzqwzqwzq
"17"
localhost:0>get muscleape
"com.wzqwzqwzq.www"
# 追加子串(append 键 子串)
localhost:0>append muscleape .wzq
"21"
localhost:0>get muscleape
"com.wzqwzqwzq.www.wzq"

计数器

1、如果字符串的内容是一个整数,可以将字符串当做计数器来使用;

# 初始化
localhost:0>set muscleape 59
"OK"
# 获取值
localhost:0>get muscleape
"59"
# 增加(incrby 键 增加数值)
localhost:0>incrby muscleape 200
"259"
# 获取值
localhost:0>get muscleape
"259"
# 减少(decrby 键 减少数值)
localhost:0>decrby muscleape 200
"59"
# 获取值
localhost:0>get muscleape
"59"
# 增加1(incr 键)=> 等价于 => incrby 键 1
localhost:0>incr muscleape
"60"
# 减小1(decr 键)=> 等价于 => decrby 键 1
localhost:0>decr muscleape
"59"

2、计数器是有范围的,不能超过Long.Max,不能低于Long.MIN

localhost:0>set muscleape 9223372036854775807
"OK"
localhost:0>incr muscleape
"ERR increment or decrement would overflow"
# #####################################
localhost:0>set muscleape -9223372036854775808
"OK"
localhost:0>decr muscleape
"ERR increment or decrement would overflow"

删除和过期

字符串可以使用del指令进行主动删除,可以使用expire指令设置过期时间,到点会自动删除,这属于被动删除。可以使用ttl指令获取字符串的寿命;

# 设置过期时间(expire 键 有效秒数);1表示设置成功,0表示变量ireader不存在
localhost:0>expire muscleape 60
"1"
# 查询寿命(ttl 键); 还有55秒的寿命,返回-2表示变量不存在,-1表示没有设置过期时间
localhost:0>ttl muscleape
"55"
# 删除(del 键)删除成功返回1
localhost:0>del muscleape
"1"
localhost:0>get muscleape
null

Redis基本操作-string的更多相关文章

  1. 二、Redis基本操作——String(实战篇)

    小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...

  2. 一、Redis基本操作——String(原理篇)

    小喵的唠叨话:最近京东图书大减价,小喵手痒了就买了本<Redis设计与实现>[1]来看看.这里权当小喵看书的笔记啦.这一系列的模式,主要是先介绍Redis的实现原理(可能很大一部分会直接照 ...

  3. 三、Redis基本操作——List

    小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作.当时我们提到Redis的键值对不仅仅是字符串.而这次我们就要介绍Redis的第二个数据结构了,List(链表).由于List ...

  4. Redis基本操作-20150608

    Redis基本操作-20150608 [http://my.oschina.net/u/241255/blog/206991]   Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存 ...

  5. Redis 基本操作(一)

    redis和普通的Key-Value结构不同,Redis的Key支持灵活的数据结构,除了strings,还有hashes.lists. sets 和sorted sets等结构.正是这些灵活的数据结构 ...

  6. 【原】Redis基本操作

    Redis基本操作 遍历操作 Pub-Sub server Lua脚本 Redis中的这些操作都是不分大小写的. 除了针对于具体类型的具体操作.还有一些其他操作. 遍历操作 SCAN cursor [ ...

  7. Redis之String

    一.Redis之String简介 1. String是redis最基本的数据类型,一个key对应一个value. 2. String是二进制安全的,可以包含任何数据,例如图片或序列化的对象. 3. S ...

  8. redis对string进行的相关操作

    redis对string类型操作的相关命令以及如何在python使用这些命令 redis对string类型操作的命令: 命令 语法 概述 返回值 Redis SET 命令  set key value ...

  9. Redis操作string

    Redis简介: ''' redis: 缓存,例如两个个程序A,B之间要进行数据共享,A可以把数据存在redis(内存里),其他程序都可以访问redis里的数据, 这样通过中间商redis就实现了两个 ...

随机推荐

  1. Oracle 基于用户管理恢复的处理

    ================================ -- Oracle 基于用户管理恢复的处理 --================================ Oracle支持多种 ...

  2. Celery 异步定时周期任务

    1/什么是Celery Celery 是基于Python实现的模块,用于执行异步定时周期任务的 其结构的组成是由 1.用户任务app 2.管道 broker 用于存储任务 官方推荐 redis rab ...

  3. request笔记记录

    1.https请求报错解决方法,添加verify=False参数 r = requests.get(json=payload, headers=headers,verify=False) 1)由于这里 ...

  4. 在chrome中安装基于REST的web服务客户端

    基于REST的Web服务客户端的使用方法 点击转到基于REST的Web服务客户端下载页面 chrome浏览器如果安装扩展程序点击chrome浏览器右上角,选择“设置在“设置”对话框里选择“扩展程序”然 ...

  5. MongoDB CPU 利用率高,分析慢请求

    Jemeter 压测过程,发现mongodb的CPU均达到100%,需要查看mongodb的执行情况,使用mongo自带的profiling功能. profiling将请求的执行情况记录在DB下的 s ...

  6. vlc 网页插件的 使用与控制 API http://www.xuebuyuan.com/2224602.html

    不知道vlc 是什么的请百度一下.. vlc 提供了ie浏览器的activeX插件和火狐或者chrome的插件,基本上覆盖了所有浏览器,所以有复杂解码需求的情况下用vlc来解决网页播放视频,也是一种没 ...

  7. jQuery的selector和context属性

    从jQuery1.3开始添加了这2个属性. 现在我们来看看那这2个属性的用法. selector属性是一个字符串.存储的字符串是选择器. HTML代码: <div class="guo ...

  8. Windows环境下多版本JDK切换

    因为有切换多个版本的JDK需求,但是本机的JDK安装比较混乱(因为不是我最先使用的),所以出现了一些问题在这里记录下.本来我以为只需要修改环境变量中的JAVA_HOME环境路径即可,如果没有配置JAV ...

  9. 第13章 TCP编程(1)_socket套接字

    1. socket套接字 (1)套接字简介 ①socket是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段. ②Linux中的 ...

  10. ffmpeg同步

    1:ffmpeg解码流程 拆包,构建队列,解码,同步,显示 //计算视频Frame的显示时间//获取ptspts = 0;//decodec video frameavcodec_decode_vid ...