好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php操作redis存值 php redis数据类型

很多站长朋友们都不太清楚php操作redis存值,今天小编就来给大家整理php操作redis存值,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php使用Redis保存数据表中所有数据, 这样子设计合不合理 2、 请问在PHP中,如何将一个多维数组存储到redis中 3、 php怎么将数据导入redis 4、 redis 如何存一个PHP数组?代码怎么写呢? 5、 thinkphp如何使用redis 有简单的示例代码吗 php使用Redis保存数据表中所有数据, 这样子设计合不合理

这样是不合理的。redis只是为了快。你把所有数据表都,存到readyis里面,可能不好存,而且需要整合一下才可以存进去,它的结构是noSQL的,和MySQL不一样的。

请问在PHP中,如何将一个多维数组存储到redis中

// 数组到json或者可以使用序列化函数

$val = json_encode($arr);

$redis->set("key", $val);

// 取出来反序列化

$val = $redis->get("key");

$arr = json_decode($val, true);

也可以用 serialize unserialize 替代

php怎么将数据导入redis

对于大访问量的站点使用默认的Session 并不合适,我们可以将其存入数据库、或者使用Redis KEY-VALUE数据存储方案

首先新建一个session表

CREATE TABLE `sessions` (

`sid` char(40) NOT NULL,

`updatetime` int(20) NOT NULL,

`data` varchar(200) NOT NULL,

UNIQUE KEY `sid` (`sid`) USING HASH

) ENGINE=MEMORY DEFAULT CHARSET=utf8;

Mysql 的memory引擎采用内存表,所有数据存储在内存,操作速度快

复制代码

<?php

//引入数据库文件

include "db.php";

class MySessionHandler implements SessionHandlerInterface

{

private $savePath;

private $sessData;

public $expiretime; //设置过期时间

public $db; //数据库

public function __construct($hanlder =''){

$this->db = Database::getInstance();

//获取数据库实力

///var_dump($this->db);

}

public function open($savePath, $sessionName)

{

return true;

}

public function close()

{

return true;

}

public function read($id)

{

$sql ="select * from sessions where sid ='$id'";

$result = $this->db->execute($sql);

if(!empty($result)){

return $this->sessData = $result;

}

}

//函数的参数 $id -> 当前会话ID

//数据DATA -> 序列化之后的字符串

public function write($id, $data)

{

// echo $id;

// echo $data;

$now = time();

$newExp = $now+$this->expiretime; //总时间=当前时间 + 期限时间

$sql = "select * from sessions where sid ='$id'";

$result = $this->db->getOne($sql);

//var_dump($result);

if($data==''||isset($data)){

$data = $this->sessData;

}

if($result){

//如果存在则更新

$sql ="update sessions set updatetime = '$newExp',data ='$data' where sid = '$id'";

//echo $sql;

$update_data =$this->db->execute($sql);

if($update_data){

return true;

}

}else{

//不存在则生成生成

$sql = "insert into sessions(sid,updatetime,data) values('$id','$now','$data')";

$insert_data = $this->db->execute($sql);

if($insert_data){

return true;

}

}

return false;

}

public function destroy($id)

{ //销毁

$sql = "delete from sessions where sid="."$id";

$destory = $this->db->execute($sql);

if($destory){

return true;

}else{

return false;

}

}

public function gc($sessMaxLifeTime)

{

$t = time();

$sql ="delete from sessions where $t - 'updatetime'>${sessMaxLifeTime}";

$data = $this->db->execute($this->tosql);

if($data){

return true;

}else{

return false;

}

return true;

}

}

复制代码

实例化

此处 PHP 手册可以有两种方法

1,实现了SessionHandlerInterface借口的对象,自PHP5.4可以使用

2 ,直接使用 session_set_save_handler

复制代码

//判断PHP版本

if(version_compare(PHP_VERSION,5.4)==1){

session_set_save_handler($handler, true);

session_start();

}else{

ini_set('session.use_trans_sid',0);

ini_set('session.use_cookies',1);

ini_set('session.cookie_path','/');

ini_set('session.save_handler','user');

session_module_name('user');

session_set_save_handler(array($session,"open"),array($session,"close"),array($session,"read"),array($session,"write"),array($session,"destory"),array($session,"gc"));

session_start();

}

$_SESSION['QQ']="QQ";

echo $_SESSION['QQ'];

复制代码

数据库代码 db.php

复制代码

<?php

class Database{

static $instance;

static $db;

static function getInstance(){

if(self::$instance){

return self::$instance;

}else{

return new Database();

}

}

public function __construct(){

self::$db = new PDO('mysql:host=localhost;dbname=session', 'root','');

}

public function getOne($sql){

$rs =self::$db->query($sql);

@$rs->setFetchMode(PDO::FETCH_ASSOC);//返回关联数组

$result = $rs -> fetch();

return $result;

}

public function execute($sql){

$rs = self::$db->exec($sql);

return $rs;

}

}

//$data = Database::getInstance();

//var_dump($data);

复制代码

使用REDIS 存储SESSION

复制代码

<?php

class SessionManager{

private $redis;

private $sessionSavePath;

private $sessionName;

private $sessionExpireTime = 30;

public function __construct(){

$this->redis = new Redis();

$this->redis->connect('127.0.0.1',6379); //连接redis

$retval = session_set_save_handler(

array($this,"open"),

array($this,"close"),

array($this,"read"),

array($this,"write"),

array($this,"destory"),

array($this,"gc")

);

session_start();

}

public function open($path,$name){

return true;

}

public function close(){

return true;

}

public function read($id){

$value = $this->redis->get($id);

if($value){

return $value;

}else{

return "";

}

}

public function write($id,$data){

if($this->redis->set($id,$data)){

$this->redis->expire($id,$this->sessionExpireTime);

//设置过期时间

return true;

}

return false;

}

public function destory($id){

if($this->redis->delete($id)){

return true;

}

return false;

}

public function gc($maxlifetime){

return true;

}

//析构函数

public function __destruct(){

session_write_close();

}

}

$re = new SessionManager();

$_SESSION['name'] = "qq";

echo $_SESSION['name'];

redis 如何存一个PHP数组?代码怎么写呢?

Redis->hmset($key, $value);

$value值是一个二维数组,可以对数组进行单个键值操作!

Redis->hgetall($key);

取出整个数组内容

Redis->hget($key,$index);

取出数组的$index下标

thinkphp如何使用redis 有简单的示例代码吗

$redis = new \think\cache\driver\Redis();//实例化Think的Redis驱动

$redis->has('键名');//判断redis值是否存在

$redis->get('键名');//获取redis的某个值;

$redis->set('键名','键值');//设置redis值

$redis->inc('键名',进长[默认为1]);//自增缓存。只对数字整型有效

$redis->dec('键名',进长[默认为1]);//自减缓存。只对数字整型有效

$redis->rm('键名');//删除缓存

$redis->clear();//清空缓存

关于php操作redis存值的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php操作redis存值 php redis数据类型的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did254242
更新时间:2023-09-13   阅读:49次

上一篇: 包含ampquotphp的词条

下一篇:什么是php行为 什么是php,php有哪些优点

相关资讯

最新资料更新

  • 1.php拼音模糊查询 php模糊搜索功能
  • 2.php框架开发教程 php系统开发框架
  • 3.php数值内存溢出 php大数组内存溢出
  • 4.php绘制健康码 php源码怎么搭建网站
  • 5.php的sql累加 sql实现累加
  • 6.macphp执行权限 macbookpro权限
  • 7.仿win桌面php源码 仿windows桌面
  • 8.php做vip解析 php解析器是什么
  • 9.红帽升级php 红帽linux最新版
  • 10.php项目任务分配 php任务调度框架
  • 11.php短信被刷 php防止短信被刷
  • 12.phpgetrows的简单介绍
  • 13.phpajix的简单介绍
  • 14.射洪php招聘 射洪平台公司招聘
  • 15.登录注册的php代码 php用户注册登录代码
  • 16.php单个会话内存 php会话保存数据的两种方式是
  • 17.php爬淘宝图片 php爬取图片
  • 18.phpwebim开发 php web开发实用教程
  • 19.网页php查看源代码 php怎么看源码
  • 20.免费版仓库管理系统php 仓库管理系统php源码

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]