【redis】redis
一、redis简介:
1. reids 也是一个 key-value 存储系统,更加确切地说,它已经是一个非关系型数据库。
2. 关系型。
SQL语言。
3. 非关系型。
key - value。
4. 数据类型。
字符串。
哈希
列表
集合
有序集合。
二、安装
linux
1. 解压
tar xzf redis-3.2.9.tar.gz
2. 进入目录
cd redis-3.2.9
3. 编译
make
4. 启动
二进制文件是编译完成后在src目录下,通过下面的命令启动Redis服务:
src/redis-server 或者 cd src && ./redis-server [redis.conf]
5. 使用
你可以使用内置的客户端命令redis-cli进行使用:
src/redis-cli
6. 配置
redis.conf
三、安装 php 扩展
1. 下载
s
2. 解压
unzip phpredis.zip
3. 进入目录
cd /phpredis
4. 执行 phpize
/usr/local/bin/phpize
5. 配置
./configure --with-php-config=/usr/local/php/bin/php-config
6. 编译安装
make && make install
7. 修改 php.ini 配置文件
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
extension="redis.so";
8. 重启apache
/usr/local/apache2/bin/apachectl restart
四、使用 php 操作
数据类型
1. string
增加
set('索引','值') // 设置值。
setex // 设置有生命周期的值
mset('数组') // 批量设置值
setnx('索引','值') // 设置新值
删除
delete// 删除值。
修改
set('索引','值') // 修改值
incr('索引') // 增加值
incrby('索引','步进值') // 步进递加值
decr('索引') // 递减值
decrby('索引','步进值') // 步进递减值
获取
get('索引')// 获取值
mget('数组')// 批量获取值
2. list,链表,列表。
增加
lpush(‘表名’,‘值’)// 从左添加值
rpush(‘表名’,‘值’)// 从右添加值
删除
lpop(‘表名’)// 从左弹出
rpop(‘表名’)// 从右弹出
lrem(‘表名’)// 删除几个
修改
lset(‘表名’,第几个,‘要修改的值’)// 根据索引修改,从0开始
lset(‘表名’,负第几个,‘要修改的值’)// 根据索引修改,倒数,从-1开始
rpoplpush(‘弹出表’,‘填入表’)// 弹出最后一个元素到另一个新的列表中
查询
lindex(‘表名’,索引号数字)// 根据索引查询
lrange(‘表名’,开始索引号,结束索引号)// 从 start 到 end 结束。
lrange(‘表名’,0,-1)// 获取所有元素
lsize(‘表名’)// 查询列表中元素的个数
3. set 无序集合
增加
sadd(‘集合名’,‘值1’,‘值2’,‘值n’)// 添加集合
删除
srem(‘集合名’,‘值’)// 删除集合中的元素
修改
smove(‘集合1’,‘集合2’,‘值’)// 移动集合中的元素到另一个集合中。
查询
smembers(‘集合名’)// 获取集合中所有的元素
ssize(‘集合名’)// 获取集合中元素的个数
srandmember(‘集合名’)// 从集合中随机获取元素。
sinter(‘集合1’,‘集合2’)// 交集
sunion(‘集合1’,‘集合2’)// 并集
sdiff(‘集合1’,‘集合2’)// 差集
sismember(‘集合名’,‘值’)// 检测集合中元素是否存在
4. zset 有序集合
增加
zadd(‘集合名’,分数,‘值’)// 添加集合
删除
zrem(‘集合名’,‘值’)// 删除集合中的一个元素
修改
zincrby(‘集合名’,步进值,‘值’)// 提高分数
查询
zrange(‘集合名’,0,-1)// 获取集合中的所有元素
zrevrange(‘集合名’,0,-1)// 获取集合中的所有元素,倒数。
zrangebyscore(‘集合名’,起始分数,终止分数)// 根据分数范围获取元素,并取几个。
zrevrangebyscore('z1', 10, 50, ['withscores'=> true, 'limit'=> [0, 3]]// 根据分数范围获取元素,并取几个。
zcount(‘集合名’,起始分数,终止分数)//统计分数范围内的元素个数
zsize(‘集合名’)// 获取集合中元素的个数
zscore(‘集合名’,‘值’)// 获取某个元素的分数
zrank(‘集合名’,‘值’)// 获取某个元素的排名,从0开始算起。
zrevrank(‘集合名’,‘值’)// 获取某个元素排名,倒数
5. hash 哈希
增加
hset(‘哈希名’,‘索引’,‘值’)// 设置值
hmset(‘哈希名’,数组)// 批量设置值
hincrby(‘哈希名’,‘索引’,步进值)// 递加值
删除
hdel(‘哈希名’,‘值’)// 删除值
修改
hset(‘哈希名’,‘索引’,‘值’)// 修改值
查询
hget(‘哈希名’,‘索引’)// 获取值
hmget(‘哈希名’,数组)// 批量获取值
hgetall(‘哈希名’)// 获取所有值
hlen(‘哈希名’)// 获取个数
hkeys(‘哈希名’)// 获取所有键。
hvals(‘哈希名’)// 获取所有值
hexists(‘哈希名’,‘索引’)// 检测键名是否存在
6. 通用操作
select(数据库编号)// 选择数据库
flushdb// 清空当前数据库
flushAll// 清空所有数据库
set// 设置值
expire(‘索引’,时间)// 添加生命周期。
del// 删除值
ttl(‘索引’)// 获取生命周期
exists(‘索引’)// 检测键名是否存在
keys(‘*’)// 获取所有键
keys(‘name*’)
keys(‘*name’)
【redis】redis的更多相关文章
- 【NoSql】Redis
[NoSql]Redis 一. 文档 1. 官网 2. Windows 安装包 3. C# Driver a. ServiceStack.Redis 最新版本是收费的 b. StackExchange ...
- 【python】redis基本命令和基本用法详解
[python]redis基本命令和基本用法详解 来自http://www.cnblogs.com/wangtp/p/5636872.html 1.redis连接 redis-py提供两个类Redis ...
- 【redis】redis的bind配置
原文:[redis]redis的bind配置 在配置文件redis.conf中,默认的bind 接口是127.0.0.1,也就是本地回环地址.这样的话,访问redis服务只能通过本机的客户端连接, ...
- 【redis】redis基础命令学习集合
写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...
- 【redis】redis应用场景,缓存的各种问题
如果你还不知道redis的基本命令与基本使用方法,请看 [redis]redis基础命令学习集合 缓存 redis还有另外一个重要的应用领域——缓存 引用来自网友的图解释缓存在架构中的位置 默认情况下 ...
- 【Redis】Redis Sentinel 哨兵模式搭建
Redis Sentinel介绍 Redis Sentinel是Redis的官方高可用性解决方案 Redis Sentinel为Redis提供高可用性.实际上,这意味着使用Sentinel可以创建一个 ...
- 【Redis】redis各类型数据存储分析
一.简介和应用 Redis是一个由ANSI C语言编写,性能优秀.支持网络.可持久化的K-K内存数据库,并提供多种语言的API.它常用的类型主要是 String.List.Hash.Set.ZSet ...
- 亿级流量场景下,大型缓存架构设计实现【1】---redis篇
*****************开篇介绍**************** -------------------------------------------------------------- ...
- 【Redis】Redis cluster集群搭建
Redis集群基本介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation. Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行 ...
- 【转】Redis学习---哈希结构内存模型剖析
[原文]https://www.toutiao.com/i6594624365906625032/ 概述 在前文<Redis字符串类型内部编码剖析>之中已经剖析过 Redis最基本的 St ...
随机推荐
- MATLAB神经网络(3) 遗传算法优化BP神经网络——非线性函数拟合
3.1 案例背景 遗传算法(Genetic Algorithms)是一种模拟自然界遗传机制和生物进化论而形成的一种并行随机搜索最优化方法. 其基本要素包括:染色体编码方法.适应度函数.遗传操作和运行参 ...
- nuxt.js如何实现同级目录下建多个动态路由,并将链接设置.html后缀
nuxt.js中如果在同级目录中建两个_xxxx.vue的动态路由文件,那么页面跳转始终是跳的一个页面,如何解决这个问题呢?下面举个栗子: 第一步:新建两个页面文件 第二步:在nuxt.config. ...
- BigDecimal介绍及BigDecimal实现四舍五入
BigDecimal介绍及BigDecimal实现四舍五入 BigDecimal是什么? 我们知道float最大精度是7-8位有效数字,而double的最大精度是16-17位有效数字,那么大于16位的 ...
- 视觉目标跟踪算法——SRDCF算法解读
首先看下MD大神2015年ICCV论文:Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. "Learning Spa ...
- 【限时免费】AppBoxCore - 细粒度权限管理框架(EFCore+RazorPages+async/await)!
目录 前言 全新AppBoxCore RazorPages 和 TagHelpers 技术架构 页面处理器和数据库操作的异步调用 Authorize特性和自定义权限验证过滤器 Authorize登录授 ...
- LocalStorage与SessionStorage
localStorage与sessionStorage 每日更新前端基础,如果觉得不错,点个star吧
- Postman从入门到入门
1.Postman简介 Postman是一个接口测试工具,在做接口测试的时候, Postman相当于一个客户端,可以发送请求到服务器端.Postman分为Chrome插件版本(不再更新维护)和Nati ...
- [源码分析] 从实例和源码入手看 Flink 之广播 Broadcast
[源码分析] 从实例和源码入手看 Flink 之广播 Broadcast 0x00 摘要 本文将通过源码分析和实例讲解,带领大家熟悉Flink的广播变量机制. 0x01 业务需求 1. 场景需求 对黑 ...
- 3.Scikit-Learn实现完整的机器学习项目
1 完整的机器学习项目 完成项目的步骤: (1) 项目概述 (2) 获取数据 (3) 发现并可视化数据,发现规律. (4) 为机器学习算法准备数据. (5) ...
- doc-指令-查看端口是否被占用及占用程序
来源:http://www.blogjava.net/huozhicheng/archive/2011/09/27/359620.html 1.首先进入命令行 查看端口是否被占用 使用命令: nets ...