【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 ...
随机推荐
- Head First设计模式——中介者模式和备忘录模式
中介者 中介者模式:使用中介者来集中相关对象之间复杂的沟通方式和控制方式. Bob有一个自动屋,当他的闹钟响了只有,闹钟会告诉咖啡壶开始煮咖啡.后来客户不断的提出许多新需求:周末不要提供咖啡.下班后需 ...
- jmeter 性能测试基本过程及示例
jmeter 为性能测试提供了一下特色: jmeter 可以对测试静态资源(例如 js.html 等)以及动态资源(例如 php.jsp.ajax 等等)进行性能测试jmeter 可以挖掘出系统最大能 ...
- 【Android】Retrofit源码学习
使用Retrofit的流程 通过Builder创建Retrofit对象: Retrofit retrofit = new Retrofit.Builder().baseUrl("" ...
- JVM 常用参数一览表(转)
参数 默认值或限制 说明 参数 默认值 功能 -XX:-AllowUserSignalHandlers 限于Linux和Solaris,默认不启用 允许为java进程安装信号处理器,信号处理参见类:s ...
- MVVM相关框架
Caliburn.Micro PropertyChanged.Fody Prism MVVMLight (未完)
- 1. postman使用
postman使用教程: https://blog.csdn.net/fxbin123/article/details/80428216 http://bayescafe.com/tools/use- ...
- JAVA为什么不能通过构造函数传参来设置数组长度。
今天我们来说说 JAVA通过构造函数传递的参数来设置数组长度的问题. 问题在于我们没有明确知晓JVM的运行顺序.在new对象的时候,先调用构造函数,但是并没有将执行构造函数的代码,随机之后就初始化了 ...
- Development of a High Coverage Pseudotargeted Lipidomics Method Based on Ultra-High Performance Liquid Chromatography−Mass Spectrometry(基于超高效液相色谱-质谱法的高覆盖拟靶向脂质组学方法的开发)
文献名:Development of a High Coverage Pseudotargeted Lipidomics Method Based on Ultra-High Performance ...
- List集合概述和特点
List集合概述 有序集合(也称序列)用户可以精确控制列表的每一个元素的位置插入,用户可以通过整数索引访问元素,并搜索列表中的元素 与set集合不同,列表通常允许重复的元素 List集合的特点 有序: ...
- x86汇编指令集大全(带注释)
X86和X87汇编指令大全(有注释) PUSH 压栈.POP 来说是出栈.入栈(push):---------- 一.数据传输指令 ---------------------------------- ...