redis学习 基础篇(一)
来源:互联网 发布:微信淘宝优惠群二维码 编辑:程序博客网 时间:2024/06/04 01:18
redis是一种常用非关系型数据库,主要特点为高速,作为php工程师,redis是一种必须掌握的技术,可以有效应对高并发时的缓存问题。具体简介可以在菜鸟教程查看(http://www.runoob.com/redis/redis-intro.html)。
1.redis环境安装
系统环境为centos,下载地址为https://redis.io/download,下载后放到linux的目录里面。我一般用winscp在linux和windows之间传东西很方便,然后运行下面的代码解压并安装
$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz$ tar xzf redis-3.2.9.tar.gz$ cd redis-3.2.9$ make
接下来启动redis服务
$ cd src$ ./redis-server
也可以加redis.conf 这样就可以按配置信息启动了。建议修改conf的daemonize为yes,这样redis会在后台运行。成功之后保持当前窗口,重新开一个窗口启动客户端就可以对redis进行操作了。
$ cd src$ ./redis-cli
2.redis的五种数据类型
(图来源慕课网 侵删)
1)string 操作 存放字符串和数字,可以进行数学计算
127.0.0.1:7200> set string1 xiaozanOK127.0.0.1:7200> get string1"xiaozan"127.0.0.1:7200> set string2 4OK127.0.0.1:7200> incr string2(integer) 5127.0.0.1:7200> get string2"5"127.0.0.1:7200> decyby string2 2(error) ERR unknown command 'decyby'127.0.0.1:7200> decrby string2 2(integer) 3127.0.0.1:7200> get string2"3"127.0.0.1:7200>2)list操作:双向队列,允许相同元素
127.0.0.1:7200> lpush list1 12(integer) 1127.0.0.1:7200> lpush list1 13(integer) 2127.0.0.1:7200> rpop list1 13(error) ERR wrong number of arguments for 'rpop' command127.0.0.1:7200> rpop list1"12"127.0.0.1:7200> lpush list2 12(integer) 1127.0.0.1:7200> lpush list2 13(integer) 2127.0.0.1:7200> lpush list2 13(integer) 3127.0.0.1:7200> llen list2(integer) 33)set操作:不能有相同元素存在
127.0.0.1:7200> sadd set1 12(integer) 1127.0.0.1:7200> sadd set1 13(integer) 1127.0.0.1:7200> sadd set1 13(integer) 0127.0.0.1:7200> scard set1(integer) 2127.0.0.1:7200> sismember set1 13(integer) 1127.0.0.1:7200> sismember set1 12(integer) 1127.0.0.1:7200> srem set1 13(integer) 1127.0.0.1:7200> sismember set1 134)hash操作
127.0.0.1:7200> hset hash1 key1 12(integer) 1127.0.0.1:7200> hget hash1 key1"12"127.0.0.1:7200> hset hash1 key2 12(integer) 1127.0.0.1:7200> hset hash1 key3 12(integer) 1127.0.0.1:7200> hlen hash1(integer) 3127.0.0.1:7200> hset hash1 key3 13(integer) 0127.0.0.1:7200> hget hash1 key3"13"127.0.0.1:7200> hmget hash1 key1 key2 key31) "12"2) "12"3) "13"5)sort set操作:加权有利于排序
127.0.0.1:7200> zadd zset1 10.1 val1(integer) 1127.0.0.1:7200> zadd zset1 11.1 val2(integer) 1127.0.0.1:7200> zadd zset1 9.2 val3(integer) 1127.0.0.1:7200> zcard zet1(integer) 0127.0.0.1:7200> zcard zset1(integer) 3127.0.0.1:7200> ZRANGE zser1 0 2 withscores(empty list or set)127.0.0.1:7200> ZRANGE zset1 0 2 withscores1) "val3"2) "9.1999999999999993"3) "val1"4) "10.1"5) "val2"6) "11.1"127.0.0.1:7200> zrank zset1 val2(integer) 2127.0.0.1:7200> zadd zset1 12.2 val3(integer) 0127.0.0.1:7200> ZRANGE zset1 0 2 withscores1) "val1"2) "10.1"3) "val2"4) "11.1"5) "val3"6) "12.199999999999999"
此外,redis在2.8.9 版本添加了 HyperLogLog 结构。主要用于计算不同值的数量,即基数统计的算法。优点是所用空间小
127.0.0.1:7200> pfadd key 1(integer) 1127.0.0.1:7200> pfadd key 2(integer) 1127.0.0.1:7200> pfadd key 1(integer) 0127.0.0.1:7200> pfcount key(integer) 2127.0.0.1:7200>3.redis发布订阅
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端
先在一个客户端1订阅
127.0.0.1:7200> SUBSCRIBE redischat再在另一个客户端2发送
127.0.0.1:7200> PUBLISH redischat "xiaozan"(integer) 1此时在订阅的客户端1会输出信息
1) "message"2) "redischat"3) "xiaozan"从而达到了订阅效果
4.redis事务
实际上就是输入多条命令之后,按顺序一次执行。开始输入multi,执行输入exec
127.0.0.1:7200> MULTIOK127.0.0.1:7200> SET NUM 1QUEUED127.0.0.1:7200> INCR NUMQUEUED127.0.0.1:7200> DECRBY NUM 2QUEUED127.0.0.1:7200> GET NUMQUEUED127.0.0.1:7200> EXEC1) OK2) (integer) 23) (integer) 04) "0"
此外redis还可以执行脚本命令,还有连接验证功能。以后用到的时候再说,这次基本篇一就这样了。下次讲redis在php里面的应用,可能结合yii框架来说明。
阅读全文
1 0
- redis学习 基础篇(一)
- redis 学习篇(基础)
- redis基础(一)
- Redis学习到实战(一)基础与入门
- Redis学习到实战(一)基础与入门
- 【redis 基础篇一】redis初识
- redis系列(一)redis基础
- redis学习(一)
- Redis学习(一)
- Redis学习(一)
- Redis学习(一)
- Redis 学习(一)
- Redis学习笔记一(基础命令)
- 《Learning Redis》学习笔记一:基础介绍
- redis学习 基础篇(二) php操作redis
- Redis windows学习(一)——redis安装和基础使用
- redis学习(一)Redis应用场景
- Redis学习笔记(一)--认识Redis
- 用servlet实现一个注册功能 ,后台获取数据
- js---style添加样式方式
- ns3之使用Ipv4ListRouting在一个节点上插入不同的路由协议
- 【DP】【数论】17.6.3 计算器 题解
- 剪花布条 (KMP算法(模板))
- redis学习 基础篇(一)
- [LeetCode]190. Reverse Bits
- 【C语言】判断素数函数
- A problem is easy
- Gradle学习——读懂Gradle语法
- Krpano学习:软件初识
- Spring事务(一)
- Hibernate逆向工程【PowerDesigner、idea环境下】
- Git 分支---3.3分支的管理---3.4利用分支进行开发的工作流程