string 是 Redis 最基本的类型,与Memcached类似,一个 key 对应一个 value

string 类型是二进制 安全的。这意味着 Redis 的 string 可以包含任何数据。比如图片或者序列化的对象。

一个 Redis 中字符串 value 最多可以是 512M

设置单个值(set)

$view_num = 'cs';// 如果需要存储非字符串类型,需要提前转换为字符串,获取时再进行转换
$redis->set('view_num', $view_num);

设置并指定过期时间(setex)

$redis->setex('view_num', 60, '23');

设置指定的 key-value (setnx)

// 指定的 key 不存在时,设置指定的值(setnx)
$redis->setnx('province','sz');

设置多个值(mSet)

// 同时设置一个或多个 key-value
$redis->mset(['name'=>'test','age'=>21]);

先获取key值,再重新赋值(getSet)

// 先获取key值,再重新赋值,如 key存在 会返回之前的值,不存在返回 false
$redis->getset('name','test2');

获取 单个值 (get)

// 获取单个给定 key 的值
$name = $redis->get('name'); //获取
var_dump($name);

获取所查询键的值(mget)

// 获取所有(一个或多个)给定 key 的值。如果 key 不存在,返回 false
$redis->mget(['view_num','sss']);

增加(incr, incrBy)

// 都是操作数字,对数字进行增加的操作,incr 是执行原子加 1 操作,incrBy 是增加指定的数
$redis->incr('view_num'); //相当于 $view_num + 1
$redis->incrBy('view_num', 5); //相当于 $view_num + 5

减少(decr, decrBy)

// 都是操作数字,对数字进行减少的操作,decr 是执行原子减 1 操作,decrBy 是减少指定的数
$redis->decr('view_num'); // 相当于 $view_num - 1
$redis->decrBy('view_num', 5); //相当于 $view_num- 5

追加(append)

// 字符串后面追加元素,返回值是字符串的总长度
$length = $redis->append('view_num','位');
var_dump($length);

获取长度(strLen)

// 获取给定 key 值的 value 的长度
$length = $redis->strlen('view_num');
var_dump($length);

字符串截取(getRange)

// getRange(key,start,end) start:下标索引的开始位置,end:下标索引的结束位置
$redis->set('str', 'qwertyuixcvbnm');
$subStr = $redis->getRange('ID', 0, 5);
var_dump($subStr);

过期时间(ttl,pttl)

// 当 key 不存在时,返回 -2 。当 key没有设置剩余生存时间时,返回 -1 。 否则,返回 key 的剩余生存时间,以秒为单位
$redis->ttl('view_num');
// 当 key 不存在时,返回 -2 。当 key没有设置剩余生存时间时,返回 -1 。 否则,返回 key 的剩余生存时间,以毫秒为单位
$redis->pttl('view_num');

移除过期时间(persist)

// 移除给定 key 的过期时间,使 key 永不过期
$redis->PERSIST('view_num');

随机返回一个 key(randomkey)

$redis->randomkey();

删除(del,delete)

// del 数组批量删除,返回删除个数;delete同del
$redis->del('name','age');
注:原子性

所谓原子操作是指不会被线程调度机制打断的操作:这种操作一旦开始,就一直运行到结束,中阿金不会有任何 context witch(切换到另一个线程).

(1)在单线程中,能够在单条指令中完成的操作都可以认为是“原子操作”,因为中断只能发生于指令之间。

(2)在多线程中,不能被其它进程(线程)打算的操作叫原子操作。

Redis 单命令的原子性主要得益于 Redis 的单线程

PHP Redis - String (字符串)的更多相关文章

  1. C#操作Redis String字符串

    /// <summary> /// Redis String 操作 /// </summary> public static void Redis_String() { Red ...

  2. redis:string字符串类型的操作

    1. string字符串类型的操作: 1.1. set 设置单个值 语法:set key value [EX seconds] [PX milliseconds] [NX|XX] 注: EX seco ...

  3. Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串

    一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...

  4. PHP操作redis之String(字符串)、List(列表)(一)

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key – value 缓存产品有以下三个特点: Redis支持数据的持久 ...

  5. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  6. python之Redis的字符串类型操作

    redis的数据类型: 字符串型    哈希     列表     集合     有序集合 1.String(字符串类型) set  命令:   设置一个键和值,键存在则只覆盖,返回ok > s ...

  7. 【Redis面试题】Redis的字符串是怎么实现的?

    年前本人在找工作面试时在Redis相关问题上可栽了跟头.在面试前按常规套路准备了一下,比如 Redis 的常用5种数据结构,Redis持久化策略,Redis实现分布式锁,简单发布订阅等等都准备了,当时 ...

  8. 理解 Redis(3) - 字符串值

    正如前面所讲的, redis 的数据结构就是一系列的键值对键 -> printable ASCII (可打印的 ASCII 码, 最大值是 512MB)值 -> Primitives (基 ...

  9. [置顶] Redis String类型数据常用的16条命令总结

    Redis String类型数据常用的16条命令总结 描述:String 类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比 ...

  10. 第二百九十五节,python操作redis缓存-字符串类型

    python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...

随机推荐

  1. journalctl查看内核/应用日志

    Systemd统一管理所有Unit的启动日志.带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志).日志的配置文件是/etc/systemd/journald.co ...

  2. [转并修改]C#编程中跨线程访问控件

    C#编程中跨线程访问控件 一.简述 二.Winforms中跨线程访问控件 三.WPF中跨线程访问控件 参考文档 一.简述 C#中不允许跨线程直接访问界面控件,即一个线程中如主线程创建的控件不允许被其他 ...

  3. 调度器44—root_domain—更新路径

    1.  root_domain 的路径的赋值路径 kernel_init_freeable //内核初始化路径调用 [2] sched_init_smp //core.c 传参 cpu_active_ ...

  4. centos 等保漏洞修复

    一.设置密码复杂度 [root@localhost ~]# vi /etc/pam.d/system-auth password requisite pam_pwquality.so try_firs ...

  5. 异步串口通信协议--UART

    UART(通用异步收发传输器)将由计算机内部传送过来的并行数据转换为输出的串行数据流.将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用. 在输出的串行数据流中加入奇偶校验位,并对 ...

  6. smartgit 安装

    下载 https://www.syntevo.com/smartgit/download/ 破解删掉

  7. Google big query - 怎么创建临时表/create temp table

    Creating a temporary table The following example creates a temporary table named Example and inserts ...

  8. 邮件合并 :处理ACCESS中批量查询语句的运行

    利用邮件合并,制作批量查询语句,一条一条的复制粘贴并运行. 有点笨但是想不出什么好办法,除非用模块的过程,但还是要手动输入参数.http://www.docin.com/p-695725657.htm ...

  9. docker镜像原理(一)

    在理解什么是docker镜像之前我们需要搞懂虚拟机系统到底是怎么组成的如何实现的,docker中又是如何安装和使用虚拟机系统的,怎样可以高效灵活的切换系统发行版等问题 一.centos7系统长什么样 ...

  10. Oracle 存储过程5:PL/SQL异常处理

    PL/SQL异常处理是PL/SQL块中对执行部分出现异常进行处理的部分.PL/SQL采用的是统一异常处理机制,当异常发生时,程序会自动跳转到异常处理部分,交给异常处理程序进行异常匹配,再调用对应的处理 ...