您的位置:首页 > 数据库 > Redis

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'









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: