Redis基础(可以通过菜鸟教程进行学习)(redis分布式爬虫)
2018-03-25 14:40
585 查看
Redis简介
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。Redis 与其他 key - value 缓存产品有以下三个特点(数据放在内存中,所以读取速度比较快,也支持磁盘读取
redis也支持本地读取,支持数据持久化):
· Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
· Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
· Redis支持数据的备份,即master-slave模式的数据备份
优势:
· 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
· 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
· 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
· 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis的安装
1、window下安装:https://github.com/MicrosoftArchive/redis/releases
下载,双击安装即可,建议别装在C盘
打开命令行工具:
cd 进入redis安装目录
输入 redis-server redis.windows.conf 回车
出现上图效果即为安装成功
出现错误:# Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
解决方法:在命令行中运行
redis-cli
127.0.0.1:6379>shutdown
not connected>exit
然后重新运行redis-server redis.windows.conf,启动成功!
2、Linux:执行命令
wget http://download.redis.io/releases/redis-3.0.503.tar.gz #下载
tar xzf redis-2.8.17.tar.gz # 解压
cd redis-2.8.17 # 进入目录
make # 编译安装
src/redis-server 启动redis服务端即可
Ubuntu下安装redis:
sudo apt-get install redis-server # 下载安装
redis-server # 启动服务端
redis-cli # 启动客户端
redis使用方法参考:
http://www.runoob.com/redis/redis-tutorial.html
使用哈希存储数据时,遇到错误,内存不够用了:
Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
执行命令即可
config set stop-writes-on-bgsave-error no
小结:
redis-cli -h 127.0.0.1 -p 6379(端口记清){cli命令行(客户端),-h(http),-p(port)}本机客户端连接远程服务端(否者出现环境变量没有配置当使用set命令时)(本机客户端访问远程服务器端)
(1)常用命令:
E:\PythonSum\redis>redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> set mykey abc(如果再次给mykey赋值,会将之前的覆盖掉)
OK
127.0.0.1:6379> get mykey
"abc"
127.0.0.1:6379> set mykey cd
OK
127.0.0.1:6379> get mykey
"cd"
127.0.0.1:6379> set youkey abc
OK
127.0.0.1:6379> set hiskey his
OK
127.0.0.1:6379> set herkey her
OK
127.0.0.1:6379> set themkey them
OK
127.0.0.1:6379> set youskey yous
OK
127.0.0.1:6379> get themkey
"them"
127.0.0.1:6379> get youskey
"yous"
127.0.0.1:6379> set name "runoob"
OK
127.0.0.1:6379> lpush sss 111
(integer) 1
127.0.0.1:6379> lpush sss 222 333 444 555 666 777 888 999
(integer) 9
127.0.0.1:6379> lrange sss 1 3
1) "888"
2) "777"
3) "666"
127.0.0.1:6379> lrange 0 1
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange sss 0 1
1) "999"
2) "888"
127.0.0.1:6379> lpop sss 0 1
(error) ERR wrong number of arguments for 'lpop' command
127.0.0.1:6379> lpop sss 0 1
(error) ERR wrong number of arguments for 'lpop' command
127.0.0.1:6379> lpush sss 222
(integer) 10
127.0.0.1:6379> lpush sss 888 444
(integer) 12
127.0.0.1:6379> sadd ttt 111
(integer) 1
127.0.0.1:6379> sadd ttt 222 333 444 555 666 777 888
(integer) 7
127.0.0.1:6379> smembers ttt
1) "111"
2) "222"
3) "333"
4) "444"
5) "555"
6) "666"
7) "777"
8) "888"
127.0.0.1:6379> zadd uuu 0 000
(integer) 1
127.0.0.1:6379> zadd uuu 1 111
(integer) 1
127.0.0.1:6379> zadd uuu 2 222
(integer) 1
127.0.0.1:6379> zadd uuu 3 333
(integer) 1
127.0.0.1:6379> zadd uuu 4 444
(integer) 1
127.0.0.1:6379> zadd uuu 5 555
(integer) 1
127.0.0.1:6379> zad
c327
d uuu 6 666
(integer) 1
127.0.0.1:6379> zrangebyscore uuu 0 6
1) "000"
2) "111"
3) "222"
4) "333"
5) "444"
6) "555"
7) "666"
127.0.0.1:6379> del sss
(integer) 1
127.0.0.1:6379> redis
(error) ERR unknown command 'redis'
127.0.0.1:6379> redis-cli
(error) ERR unknown command 'redis-cli'
127.0.0.1:6379> ^C
E:\PythonSum\redis>
set mykey 123456
set name zhansan
get mykey
get name
get age
写入列表:
l(list)push sss 111 row value
Ipush sss yyy iiii ooo(每个数据都会对应一个key)
lrange sss 1 3(start end)
lpop sss
sadd set_l 111 222
HMset hs name 'zhansan' age '22'
Hget hs name
zadd zset_1 0 zhanshan
zadd zset_1 1 zhan
zadd zset_1 2 zha
zadd zset_1 3 zh
ZRANGE zset_1 1 3
ZRANGEBYSCORE
Del name(删除列表)
del hs
(2)redis发布订阅:
首先订阅一个频道,才能收到其发送的消息
subscribe chat
redis发布订阅
多开几个客户端(redis-cli)【当在redis目录下执行redis-cli出现没有此命令时,可以关掉cmd命令行,再 重启过会就好了】
publish chat 'world'
相关文章推荐
- redis基础教程学习笔记
- Python基础教程,一本可以帮助你快乐学习Python的好书
- Swift教程_通过改造官方Sample学习Swift(三)_Swift基础(对象和类、枚举和结构、协议和扩展、泛型)
- JavaSE8基础 抽象类可以通过多态的方式来进行(伪)实例化
- CDays–3 通过函数进行功能化 Python基础教程
- Swift教程_通过改造官方Sample学习Swift(二)_Swift基础(简单值、控制流、方法和闭包)
- 菜鸟教程Python基础语法学习笔记
- 【菜鸟C++学习笔记】27.通过operator关键字进行类型转换
- Java进阶学习现在可以通过Java教程在线
- 如何将项目部署到Scrapyd(可以通过scrapy1.5中文官方文档进行学习)
- 基础编程-学习网站-菜鸟教程
- 菜鸟教程 Java 学习笔记 (基础教程)
- ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新
- Ajax - 基础教程第八章例子学习五
- 通过转让群的方法可以让16级以下的QQ号也能拥有QQ群(菜鸟QQ号不需开通QQ会员也能有群)
- Java Media Framework 基础教程(学习JMF中,看到好的中文教程,在这里记录下来)
- 通过阅读本文你可以学习如何有效地使用 CString
- Java Media Framework 基础教程(学习JMF中,看到好的中文教程,在这里记录下来)
- CSS基础学习:样式表CSS简明教程
- 菜鸟学习:动态网页PHP基础学习笔记