Redis-PHP操作-字符串

[TOC]

Redis 数据库是key-value类型存储方式, 支持的数据类型有 字符串(string)、 哈希(Hash)、 列表(list)、 集合(set)、 有序集合(Zset).

现在学习一下字符串类型的PHP相关操作

一. PHP连接Redis

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

function () {

// 引进redis配置文件

if($this->config->load('redis', TRUE, TRUE)){

$this->redis = new Redis();

try

{

$config = $this->config->item('redis');

if ($config['socket_type'] === 'unix')

{

$success = $this->redis->connect($config['socket']);

}

else // tcp socket

{

$success = $this->redis->connect(

$config['host']

,$config['port']

,$config['timeout']

);

}

if ( ! $success)

{

log_message('error'

,'Cache: Redis connection failed. Check your configuration.'

);

}

/* ---- 密码认证 ---- */

if (isset($config['password']) &&

! $this->redis->auth($config['password'])

)

{

log_message('error'

,'Cache: Redis authentication failed.'

);

}

/* ---- 选择数据库 ---- */

if (isset($config['database']) &&

! $this->redis->select($config['database'])

)

{

log_message('error'

,'Cache: Redis select database failed.'

);

}

}

catch (RedisException $e)

{

log_message('error'

,'Cache: Redis connection refused ('.$e->getMessage().')'

);

}

}else{

return false;

}

}

二. PHP操作Redis

1. 设置数据 set

1

2

3

4

5
/*@param key 

*@param test value

*@return boolean

*/

$this->redis->set('key', 'test'); // 返回boolean

2. 获取数据 get

1

2

3

4
/*@param key 

*@return value

*/

$this->redis->get('key');

3. 获取字符串中的一段 getrange OR substr

1

2

3

4

5

6
/*@param key 

*@param start

*@param end

*@return string

*/

$this->redis->getrange($key, $start, $end);

讲解: 当$start或者$end为负数时,从尾部开始

4. 设置并获取数据 getset

1

2

3

4

5
 /*@param key 

*@param value

*@return string

*/

$this->redis->getset($key, $value);

5. 获取指定偏移量上的位 getbit

1

2

3

4

5

6
/*# 获取指定key中字符串指定偏移量上的位(bit) 

*@param key 

*@param offset

*@return string

*/

$this->redis->getbit($key, $offset);

注:当 offset 比字符串值的长度大,或者 key 不存在时,返回 0

6. 设置或清除指定偏移量上的位 setbit

1

2

3

4

5

6
/*# 设置或清除指定key中字符串指定偏移量的位(bit)

*@param key 

*@param offset

*@return string

*/

$this->redis->setbit($key, $offset, $value);

7. 获取所有给定key的值 mget

1

2

3

4

5
 /*# 获取所有(一个或多个)给定 key 的值。

*@param key 

*@return string

*/大专栏  Redis-PHP操作-字符串v>
$this->redis->mget($key1, $key2);

8. 设置带过期时间的数据(单位:) setex

1

2

3

4

5

6

7
/*# 设置key的值,并指定过期时间seconds(秒)

*@param key 

*@param timeout

*@param value

*@return boolean

*/

$this->redis->setex($key, $timeout, $value);

9. 不存在key时设置数据 setnx

1

2

3

4

5

6
/*# 只有key不存在时,设置key的值

*@param key 

*@param test value

*@return boolean

*/

$this->redis->setnx('key', 'test'); // 返回boolean

10. 覆盖key中的数据(类是字符串替换) setrange

1

2

3

4

5

6

7
/*# 用value覆盖key中从offset偏移之后的数据

*@param key 

*@param offset

*@param value

*@return int 字符串长度

*/

$this->redis->setrange($key, $offset, $value); // 返回boolean

注:超过部分直接显示

11. 获取key中字符串长度 strlen

1

2

3

4
/*@param key 

*@return value

*/

$this->redis->strlen('key');

12. 设置多个key-value数据 mset

1

2

3

4
/*@param arr 关联数组(key=>value) 

*@return boolean

*/

$this->redis->mset($arr); // 返回boolean

13. 设置多个ke-value数据,仅当key不存在 msetnx

1

2

3

4
/*@param arr 关联数组(key=>value) 

*@return boolean

*/

$this->redis->msetnx($arr); // 返回boolean

14. 设置带过期时间的数据(单位:毫秒) psetex

1

2

3

4

5

6

7

8
/*# 设置key的值,milliseconds(毫秒), 

*@param key 

*@param milliseconds

*@param value

*@return boolean

*@不成功, undefined method Redis::psetex()

*/

$this->redis->psetex($key, $milliseconds, $value);

15. 数字自增一 incr

1

2

3

4

5
/*# key中储存的数字值增加1

*@param key 

*@return value

*/

$this->redis->incr('key');

16. 数字自增N incrby

1

2

3

4

5

6
/*# key中储存的数字值增加N

*@param key 

*@param N 

*@return value

*/

$this->redis->incrby('key',$N);

17. 数字自增浮点型 incrbyfloat

1

2

3

4

5
/*# key中储存的数字增加 N.M

*@param N.M

*@return value

*/

$this->redis->incrbyfloat('key',$N);

18. 数字自减一 decr

1

2

3

4

5
/*# key中储存的数字值自减1

*@param key 

*@return value

*/

$this->redis->decr('key');

19. 数字自增N decrby

1

2

3

4

5
/*# key中储存的数字值减N

*@param N

*@return value

*/

$this->redis->decrby('key',$N);

20. 追加数据 append

1

2

3

4

5

6
/*# 在key值末尾追加value

*@param key 

*@param value

*@return int 字符串数量

*/

$this->redis->append($key, $value);

21. 删除数据 delete

1

2

3

4

5

6
/*

*@param key 

*@return boolean

*/

$this->redis->delete($key1, $key2);

$this->redis->delete(array($key1, $key2));

21. 检测key是否存在 exists

1

2

3

4

5
/*

*@param key 

*@return boolean

*/

$this->redis->exists($key);

Author @Snaker95

原文地址:https://www.cnblogs.com/liuzhongrong/p/12288964.html

时间: 2024-10-09 04:28:36

Redis-PHP操作-字符串的相关文章

Redis数据操作--字符串

| 储存文字,储存数字(整数,浮点数),二进制数 |  字符串操作 -- 设置字符串     set key value     # 如果字符串键key已经存在,     那么使用新值覆盖原来的旧值 -- 获取字符串     get key     # 返回字符串键key储存的值 -- 仅在键不存在的情况下进行设置     setnx key value     # 仅在键key不存在的情况下,将键key的值设置为value,     效果和set key value NX一样.NX的意思为"N

Redis数据操作--字符串与散列键的区别

| 如果散列键能做的事情,字符串键也能做,那么 我们为什么不直接使用字符串键呢? | 散列的好处 -- 将数据放在同一个地方     # 散列可以让我们将一些相关的信息储存在同一个额地方,而不是直接分散地     储存在整个数据中里面,这不仅方便了数据管理,还可以尽量避免误操作发生.     # 举个例子,要删除字符串键记录的消息信息,我们需要输入三个键,而删除     散列键储存的消息信息,我们只要输入一个键     字符串键:id >> 10086; sender >> pet

redis java操作

Redis Java连接操作 连接到Redis服务器 import redis.clients.jedis.Jedis; public class RedisJava { public static void main(String[] args) { //Connecting to Redis server on localhost Jedis jedis = new Jedis("localhost"); System.out.println("Connection to

Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构

一.提高Redis使用性能秘诀 KEY尽量少的原则,能放在1个KEY的就放入1个KEY,KEY开销很大尽量减少与Redis发生的交互次数,能批量的就批量,能事务.管道的就事务.管道从业务架构分析确定使用哪种数据类型,从全局出发,如果类型选错了再改变就很不容易使用每一个Redis命令注意是O(1),还是O(N),切记滥用,认准每个命令的特性再使用也不迟使用PHP Redis的C语言扩展,性能远远高于PHP脚本编写的文件时刻清醒你往Redis里存储了什么,频繁交互.相对静态的小数据存储至Redis是

python对缓存(memcached,redis)的操作

1.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信 memcached服务端安装部署 安装libevent memcached依赖于libevent API,因此要事先安装之

Redis数据类型之字符串

Redis数据类型之字符串 redis的字符串 redis的字符串不是C语言原生的字符串,而是自己构建的称为简单动态字符串(simple dynamic string),简称 SDS,和C语言原生的字符串相似,使用'\0'作为结尾. 除了打印日志之外,我们操作字符串基本是在使用SDS SDS的在redis的主要功能 1. 保存数据库的字符串值 2. 用作缓冲区buffer SDS在redis的定义 在源码包下面的src目录下的sds.h 和sds.c typedef char *sds; /**

php的redis 操作类,适用于单台或多台、多组redis服务器操作

redis 操作类,包括单台或多台.多组redis服务器操作,适用于业务复杂.高性能要求的 php web 应用. redis.php: <?php /* redis 操作类,适用于单台或多台.多组redis服务器操作 使用方法: 1.$rs=new mz_redis();$rs->load_config_file('redis_config1.php');$www=$rs->connect(1,true,0)==单台读连接,连接read_array第一个元素对应的redis服务器中的随

redis 简单动态字符串 SDS

redis 没有直接使用c语言传统的字符串表示,而是自己构建了简单动态字符串(SDS)的抽象类型,并将SDS用作redis的默认字符串表示 redis的数据库里面,包含字符串值的键值对在底层都是SDS实现的 执行 rpush fruits "apple" "banana" "pits" 那么redis将在数据库中创建一个新的键值对,其中: 1.键值对的键是一个字符串对象,对象的底层实现是一个保存了字符串的fruits的SDS 2.键值对的值是一个

Spring Boot 和 Redis 常用操作

1    第4-2课:Spring Boot 和 Redis 常用操作 Redis 是目前使用最广泛的缓存中间件,相比 Memcached,Redis 支持更多的数据结构和更丰富的数据操作,另外 Redis 有着丰富的集群方案和使用场景,这一课我们一起学习 Redis 的常用操作. 1.1    Redis 介绍 Redis 是一个速度非常快的非关系数据库(Non-Relational Database),它可以存储键(Key)与 5 种不同类型的值(Value)之间的映射(Mapping),可

Redis简单操作

目录 Redis简介 安装 与其他数据库的比较 Redis VS MySQL Redis VS Memcache Redis操作 启动服务 密码管理 连接数据库 关闭服务 数据持久化 Redis五种数据类型的操作 string字符串 list列表 hash(字典) set集合 sorted set 有序集合 python操作Redis 直接使用 连接池使用 Redis简介 Redis以键值对的形式储存数据 Redis支持的数据类型有:string.list.set.zset(sorted set