redis 字符串(string)【需要掌握】

特点

  • 一个键能存储512MB数据
  • string类型是二进制安全的,可以存储任何数据,比如jpg图片或序列化对象

redis字符串数据类型的相关命令用于管理redis字符串值,基本语法如下:

语法

  1. set key values 设置指定 key 的值

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name
    "panlifu"
  2. get key 获取指定key的值

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name
    "panlifu"
  3. getrange key start end 返回key中字符串的子字符,类似python中的切片功能,不同在于redis顾头顾尾

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> GETRANGE name 0 3
    "panl"
  4. getset key value 将给定key的值设为value,并返回key的旧值(old value)

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> GETRANGE name 0 3
    "panl"
    127.0.0.1:6379> GETSET name lt
    "panlifu"
    127.0.0.1:6379> get name
    "lt"
  5. getbit key offset 对key所储存的字符串值,获取指定偏移量上的位(bit) ?


  6. setbit key offset value 对key所储存的字符串值,设置或清除指定偏移量上的位(bit) ?


  7. mget key1 [key2...]获取所有(一个或多个)给定key的值

    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> set age 24
    OK
    127.0.0.1:6379> get age
    "24"
    127.0.0.1:6379> get age name
    (error) ERR wrong number of arguments for 'get' command
    127.0.0.1:6379> mget name age
    1) "panlifu"
    2) "24"
    127.0.0.1:6379>
  8. setex key secondes value 将值value关联到key,并将key的过期时间设置为secondes(以秒为单位)

    # 第一种方法
    127.0.0.1:6379> setex name 5 "panlifu"
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    (nil) # 第二种方法
    127.0.0.1:6379> set name panlifu ex 6
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    (nil)
  9. setnx key value 只有在key不存在时设置key的值

    127.0.0.1:6379> get name
    (nil)
    127.0.0.1:6379> setnx name panlifu
    (integer) 1
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> setnx name lt
    (integer) 0
    127.0.0.1:6379> get name
    "panlifu"
  10. setrange key offset value 用value参数覆写给定key所存储的字符串值,从偏移量offset开始

    127.0.0.1:6379> set name "hello world"
    OK
    127.0.0.1:6379> get name
    "hello world"
    127.0.0.1:6379> SETRANGE name 6 "redis"
    (integer) 11
    127.0.0.1:6379> get name
    "hello redis"
  11. mset key value [key value] 同时设置一个或者多个key -value对

    127.0.0.1:6379> mset name panlifu age 18
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get age
    "18"
  12. msetnx key value [key value] 同时设置一个或者多个key-value对,当且仅当所有给定key都不存在

    127.0.0.1:6379> msetnx sex boy height 120
    (integer) 1
    127.0.0.1:6379> get sex
    "boy"
    127.0.0.1:6379> get height
    "120"
    127.0.0.1:6379> msetnx name lt age 17
    (integer) 0
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get age
    "18"

    总结:key前面有m一般都指 可以设置多个 键值对。 键后面带nx 一般表示 只有当key不存在时,才能设置该key。

  13. strlen key 返回 key 所储存的字符串值的长度

    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> strlen name
    (integer) 7
  14. psetex key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位

    127.0.0.1:6379> psetex name 1000 hehe
    OK
    127.0.0.1:6379> get name
    "hehe"
    127.0.0.1:6379> get name
    (nil)

    总结:当键以ex结尾时,一般表示设置 key的过期时间,单位为秒。当键前面有p且后面有ex时,也表示设置key过期时间,单位为毫秒

  15. incr key 将key中存储的数字值增1

    127.0.0.1:6379> set age 19
    OK
    127.0.0.1:6379> get age
    "19"
    127.0.0.1:6379> incr age
    (integer) 20
    127.0.0.1:6379> incr age
    (integer) 21
    127.0.0.1:6379> get age
    "21"
    127.0.0.1:6379> set age "19"
    OK
    127.0.0.1:6379> get age
    "19"
    127.0.0.1:6379> incr age
    (integer) 20
    127.0.0.1:6379> incr age
    (integer) 21
    127.0.0.1:6379> get age
    "21"
    127.0.0.1:6379> incr age
    (integer) 22
    127.0.0.1:6379> get age
    "22"
    127.0.0.1:6379> type age
    string

    总结:string数据类型中的数据,value的数据类型都是string类型。只要string全为数字,即可使用incr键

  16. incrby key increment 将key所储存的值加上给定的浮点增量值

    127.0.0.1:6379> get age
    "27"
    127.0.0.1:6379> incrby age 3
    (integer) 30
    127.0.0.1:6379> get age
    "30"
  17. incrbyfloat key increment 将 key 所储存的值加上给定的浮点增量值(increment) 。

    127.0.0.1:6379> get age
    "30"
    127.0.0.1:6379> incrbyfloat age 1.5
    "31.5"
    127.0.0.1:6379> get age
    "31.5"
  18. decrby key decrement key 所储存的值减去给定的减量值(decrement)

    127.0.0.1:6379> incrbyfloat age -1.5
    "30"
    127.0.0.1:6379> decrby age 5
    (integer) 25
    127.0.0.1:6379> get age
    "25"
  19. decr key 将 key 中储存的数字值减一。

  20. append key value 果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

    127.0.0.1:6379> get age
    "25"
    127.0.0.1:6379> append age hehe
    (integer) 6
    127.0.0.1:6379> get age
    "25hehe"

redis之string数据类型常用方法总结的更多相关文章

  1. Redis学习-string数据类型

    Redis 是一个开源的使用 ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志 型.Key-Value 数据库. redis提供五种数据类型string,hash,list,set及sor ...

  2. Redis 对String数据类型的操作

    Redis的 Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ...

  3. redis学习--String数据类型。

    本文摘自:http://www.cnblogs.com/stephen-liu74/archive/2012/03/14/2349815.html 一.概述: 字符串类型是Redis中最为基础的数据存 ...

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

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

  5. 5、Redis五大基本数据类型——String类型

    一.Redis支持数据类型简介 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 二.String类 ...

  6. redis有string,hash,list,sets.zsets几种数据类型

    1.string数据类型 可包含任何数据,是二进制安全的,比如图片或者序列化的对象set key valueset name hkset age 20get name 得到"hk" ...

  7. laravel-- 在laravel操作redis数据库的数据类型(string、哈希、无序集合、list链表、有序集合)

    安装redis和连接redis数据库 在controller头部引入 一.基本使用 public function RedisdDbOne() { // 清空Redis数据库 Redis::flush ...

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

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

  9. Redis常用五大数据类型

    1.String(字符串) string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个red ...

随机推荐

  1. Java编译器的常量优化

    /* 在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量, 那么编译器javac将会直接将若干个常量表达式计算得到结果. short result = 5 + 8; // 等号右边全 ...

  2. TCP 连接建立分析

    tcp 三次握手与四次挥手 tcp 报文结构 tcp 是全双工的,即 client 向 server 发送信息的同时,server 也可以向 client 发送信息. 在同主机的两个 session ...

  3. php中截取中文不乱吗

    php截取中文的使用是随处可见的,譬如,博客首页显示简介,可能会用到,或一些相册简介会用到,以前不知道,还傻傻的自己去写函数用来做“智能截取”,效果还不十分好,幸运的是,今天因为一位同学做项目,让我一 ...

  4. 【代码审计】VAuditDemo 重装漏洞

    一.源码安装漏洞介绍 一般在PHP源码程序都有一个初始安装的功能,如果相关代码没有对参数进行严格过滤,可能会导致攻击者访问安装页面(install.php)或构造数据包,对网站进行重新安装,从而危害网 ...

  5. Vue中组件之间的通信方式

    vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 本文会介绍组件间通信的8种方式如下图所示, 并介绍在不同的场景下如何选择有效方式实现的 ...

  6. 吴裕雄--天生自然Numpy库学习笔记:NumPy 字符串函数

    这些函数在字符数组类(numpy.char)中定义. add() 对两个数组的逐个字符串元素进行连接 multiply() 返回按元素多重连接后的字符串 center() 居中字符串 capitali ...

  7. 吴裕雄 python 神经网络——TensorFlow 花瓣分类与迁移学习(3)

    import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...

  8. Java面向对象编程 -1.6

    引用传递与垃圾产生分析 经过了一系列的分析之后已经确认,所有的引用传递的本质就是一场堆内存的调戏游戏.如果对于引用传递如果处理不当那么也会造成垃圾的产生, 那么本次将针对于垃圾产生的原因进行简单分析. ...

  9. css不起作用报错:Resource interpreted as Stylesheet but transferred with MIME type text/html

    解决:https://blog.csdn.net/sky_cui/article/details/86703706 找了好久........

  10. Web基础了解版09-Cookie-Session

    Cookie Cookie 是一种服务器发送给浏览器以键值对形式存储小量信息的技术. 当浏览器首次请求服务器时,服务器会将一条信息封装成一个Cookie发送给浏览器,浏览器收到Cookie,会将它保存 ...