redis相关知识
-
Redis-FAQWindows安装Redis压缩包地址:https://github.com/MSOpenTech/redis/releases,就像tomcat的压缩包一样,解压后即可使用。点击%REDIS_HOME%/redis-server.exe启动redis,然后点击%REDIS_HOME%/redis-cli.exe进入redis console。Redis常用命令在redis console中:--测试redis是否可用:set myKey aaa --设置一个key get myKey --显示aaa --给redis设置密码(redis默认没有密码) CONFIG SET requirepass 123作者:裤lue链接:https://www.jianshu.com/p/cfc92ebbe5fd
-
跟我学Redis(2)— Linux安装Redis1、安装 $ wget http://download.redis.io/releases/redis-3.0.7.tar.gz $ tar xzf redis-3.0.7.tar.gz $ cd redis-3.0.7 $ make 2、run(在redis-3.0.7目录中) $ src/redis-server 或者 $ src/redis-server redis.conf 3、测试 $ src/redis-cli redis> set foo bar OK redis> get foo "bar"
-
Redis初探1.安装Redis 下载地址:https://github.com/MSOpenTech/redis/releases。 本人系统是Win10 X64版本,下载对应的.msi安装包,执行安装即可。 2.启动Redis 在Redis安装目录C:\Program Files\Redis中打开cmd窗口,运行命令: redis-server.exe redis.windows.conf 即可启动Redis服务 3.连接Redis服务 启动Redis服务后,在安装目录下打开另一个cmd窗口,运行命令: redis-cli.exe -h 127.0.0.1 -p 6379 即可连接到本地Redis服务。 4.配置Redis A.查看配置 config get * config
-
Redis以及Redis的php扩展安装安装Redis下载最新的官网:http://redis.io/ 或者 http://code.google.com/p/redis/downloads/list第一步:下载安装编译#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz#tar zxvf redis-2.4.4.tar.gz#cd redis-2.4.4#make#makeinstall#cp redis.conf /etc/第二步:修改配置#vi/etc/redis.conf配置见附录第三步:启动进程#redis-server /etc/redis.conf查看进程有没有成功启动#ps -ef | grep redis 测试输入一个键值#redis-cli set test "123456"获取键值#redis-cli get test关闭redis # redis-cli shutdown &nb
redis相关课程
redis相关教程
- 1.1 Redis Redis 是一个使用 ANSI C 编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。# 使用 Docker 启动 redis 服务,端口默认,使用host网络模式保障性能。docker run --restart=always --network host -d -it --name myredis redis将 redis 数据保存到宿主机目录:mkdir -p ~/docker/redis/data # 新建宿主机目录docker run --restart=always --network host -d -it -v ~/docker/redis/data:/data --name myredis redis指定自己的配置文件# 先将配置文件放到 ~/docker/redis/redis.confdocker run --restart=always --network host -d -it -v ~/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf查看更多
- Redis安装: 首先需要安装并启动Redis的服务器,具体的不同系统的安装步骤,可参考慕课网关于 Redis 的学习资料进行操作,这里就不再赘述。启动 Redis 服务器需要运行命令:redis-server服务启动成功后,会显示 Ready to accept connections。效果展示:测试一下客户端能否使用redis-cli ping成功后,如下所示:
- 2.4 redis 简介 redis 是一个高性能的 key-value 数据库。redis 是非关系型数据库,将数据存储在内存中,访问的速度很快,能够显著的提高运行效率;与之相比,mysql 是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,访问速度较慢。redis 的配置文件位于 redis 安装目录下,文件名为 redis.conf,通过修改 redis.conf 文件或使用 CONFIG set 命令来修改配置。redis 提供了大量的配置选项,例如:maxmemory bytes指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Keyvm-enabled no指定是否启用虚拟内存机制,VM 机制将访问量较少的页即冷数据 swap 到磁盘上,将访问多的页面由磁盘 swap 到内存中
- 3. Python 实战 redis Python 操作 redis 数据库也是非常简单的,我们有现成的第三方模块-redis,它实现了绝大部分官方命令并使用官方的语法和命令,使用起来和我们在命令行上操作 redis 数据库一致。首先来安装 Python 的 redis 模块:[root@server2 ~]# pip3 install redisWARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.Collecting redis Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/a7/7c/24fb0511df653cf1a5d938d8f5d19802a88cef255706fdda242ff97e91b7/redis-3.5.3-py2.py3-none-any.whl (72kB) 100% |████████████████████████████████| 81kB 17.0MB/s Installing collected packages: redisSuccessfully installed redis-3.5.3接下来我们在 Python 的命令行中演示前面介绍的 Redis 中的字符串命令,请看完后认真实践下面的代码:连接 redis 数据库,和 redis 服务在同一台机上:# Python 3.6.8 (default, Apr 2 2020, 13:34:55) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import redis>>> r = redis.Redis(host='localhost', port=6777, password='spyinx', db=0)>>> r.set('hello', 'world')True>>> r.get('hello')b'world'实践 getset/mset/mget/strlen 指令:# >>> r.getset('hello', 'new world')b'world'>>> r.get('hello')b'new world'>>> r.mset({'key1':'value1', 'key2':'value2', 'key3':'value3'})True>>> r.mget(['key1', 'key2', 'key3'])[b'value1', b'value2', b'value3']>>> r.strlen('key1')6实践前面的 getrange/setrange 指令:# >>> r.getrange("key1", 0, 3)b'valu'>>> r.getrange("key1", -3, -1)b'ue1'>>> r.setrange("key1", 2, 'xxx')6>>> r.get("key1")b'vaxxx1'实践 incrby/decrby/incrbyfloat 指令:# >>> r.set("number", 100)True>>> r.get("number")b'100'>>> r.incrby("number", 1)101>>> r.decrby("number", 50)51>>> r.get("number")b'51'>>> r.incrbyfloat("number", 22.1)73.1>>> r.incrbyfloat("number", -20.8)52.3上面这些基础的 api 接口是不是和 redis-cli 命令行使用起来一模一样?所以,熟练掌握了 redis-cli 的指令用法,Python 操作 redis 也不在话下。
- 1. Redis 介绍与安装 首先我们在 CentOS7.8 的系统上源码编译安装 redis-5.0 的最新版。按照下列步骤进行:安装 gcc 等编译工具,下载 redis 5 的最新源码并解压:[root@server2 shen]# wget http://download.redis.io/releases/redis-5.0.9.tar.gz--2020-06-27 13:10:23-- http://download.redis.io/releases/redis-5.0.9.tar.gzResolving download.redis.io (download.redis.io)... 109.74.203.151Connecting to download.redis.io (download.redis.io)|109.74.203.151|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 1986574 (1.9M) [application/x-gzip]Saving to: ‘redis-5.0.9.tar.gz’100%[=========================================================================================================================================>] 1,986,574 12.9KB/s in 2m 11s 2020-06-27 13:12:35 (14.8 KB/s) - ‘redis-5.0.9.tar.gz’ saved [1986574/1986574][root@server2 shen]# tar xzf redis-5.0.9.tar.gz进入 redis 源码目录,直接安装:[root@server2 shen]# cd redis-5.0.9[root@server2 redis-5.0.9]# make MALLOC=libc PREFIX=/usr/local/redis install添加 redis 命令路径:[root@server2 redis-5.0.9]# cat /etc/profile...# 添加下面两行内容REDIS_HOME=/usr/local/redisexport PATH=$REDIS_HOME/bin:$PATH[root@server2 redis-5.0.9]# source /etc/profile[root@server2 redis-5.0.9]# which redis-cli/usr/local/redis/bin/redis-cli添加并修改 redis.conf 配置文件:[root@server2 redis-5.0.9]# mkdir /etc/redis[root@server2 redis-5.0.9]# cp redis.conf /etc/redis[root@server2 redis-5.0.9]# cat /etc/redis# ...# 修改第一处,改为后台守护进程方式启动daemonize yes# ...# 修改端口,比如改为6777port 6777# ...# 需要密码# requirepass foobaredrequirepass spyinx# ...# 允许通过公网访问该redis# bind 127.0.0.1bind 0.0.0.0加入 systemd 服务,统一管理:[root@server2 redis-5.0.9]# cat /etc/systemd/system/redis.service[Unit]Description=RedisAfter=network.target [Service]Type=forkingExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/usr/local/redis/bin/redis-cli -p 6777 shutdownPrivateTmp=true [Install]WantedBy=multi-user.target[root@server2 redis-5.0.9]# systemctl start redis[root@server2 redis-5.0.9]# systemctl status redis● redis.service - Redis Loaded: loaded (/etc/systemd/system/redis.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2020-06-27 14:08:44 CST; 3s ago Process: 7080 ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS) Main PID: 7081 (redis-server) CGroup: /system.slice/redis.service └─7081 /usr/local/redis/bin/redis-server 0.0.0.0:6777Jun 27 14:08:44 server2 systemd[1]: Starting Redis...Jun 27 14:08:44 server2 redis-server[7080]: 7080:C 27 Jun 2020 14:08:44.938 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0OoJun 27 14:08:44 server2 redis-server[7080]: 7080:C 27 Jun 2020 14:08:44.938 # Redis version=5.0.9, bits=64, commit=00000000, ...startedJun 27 14:08:44 server2 redis-server[7080]: 7080:C 27 Jun 2020 14:08:44.938 # Configuration loadedJun 27 14:08:44 server2 systemd[1]: Started Redis.Hint: Some lines were ellipsized, use -l to show in full.# 设置开机启动[root@server2 redis-5.0.9]# systemctl enable redisCreated symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.最后测试下 redis 服务是否能正常工作:[root@server2 redis-5.0.9]# redis-cli -p 6777127.0.0.1:6777> auth spyinxOK127.0.0.1:6777> ping "hello, world""hello, world"127.0.0.1:6777> set hello worldOK127.0.0.1:6777> get hello"world"127.0.0.1:6777> 完成 redis 服务搭建后我们就可以开始 redis 服务的使用了。
- 2.5 scrapy-redis 中的 Item Pipeline 最后我们来看 scrapy-redis 中定义的 item pipeline。前面我们在头条新闻爬虫的改造中只是在配置中添加了 scrapy-redis 中的 item pipeline,这样爬虫抓取的结果会保存到 redis 中,那么该 pipeline 是如何实现的呢?其代码位于 scrapy_redis/pipelines.py 文件中,我们来一览究竟:# 源码位置:scrapy_redis/pipelines.py# ...class RedisPipeline(object): def __init__(self, server, key=defaults.PIPELINE_KEY, serialize_func=default_serialize): """Initialize pipeline. Parameters ---------- server : StrictRedis Redis client instance. key : str Redis key where to store items. serialize_func : callable Items serializer function. """ self.server = server self.key = key self.serialize = serialize_func @classmethod def from_settings(cls, settings): params = { 'server': connection.from_settings(settings), } if settings.get('REDIS_ITEMS_KEY'): params['key'] = settings['REDIS_ITEMS_KEY'] if settings.get('REDIS_ITEMS_SERIALIZER'): params['serialize_func'] = load_object( settings['REDIS_ITEMS_SERIALIZER'] ) return cls(**params) @classmethod def from_crawler(cls, crawler): return cls.from_settings(crawler.settings) def process_item(self, item, spider): return deferToThread(self._process_item, item, spider) def _process_item(self, item, spider): key = self.item_key(item, spider) data = self.serialize(item) self.server.rpush(key, data) return item def item_key(self, item, spider): """Returns redis key based on given spider. Override this function to use a different key depending on the item and/or spider. """ return self.key % {'spider': spider.name}这段代码也是简洁明了,首先是初始化三个属性值:server:redis 客户端实例,用于对 redis 进行操作;key:结果保存到 redis 中的 key 名;serialize:指定结果序列化类;作为 scrapy 中的 pipeline,最核心的处理函数就是 process_item() 方法。在该 pipeline 中,该方法只有一条语句:deferToThread(self._process_item, item, spider)deferToThread() 方法是 Twisted 框架提供的一个方法,其含义如下:Run a function in a thread and return the result as a Deferred其实就是开启一个线程执行相应的方法,并将结果作为一个 Deferred 返回。我们并不关心这个 Deferred 是啥,在最后一部分源码篇中会介绍到,这里我们只关心处理 item 的操作是 self._process_item() 这个方法。该方法的逻辑非常简单明了:生成保存到 Redis 中的 key;将 item 值序列化以便能保存到 Redis 中;调用 redis 的 rpush() 方法将序列化结果保存到相应列表中;看完了 scrapy-redis 中 RedisPipeline 的代码,是不是知道为什么结果会保存到 redis 中了吧?就这样,我们几乎学完了 scrapy-redis 插件的全部源码,下来我们来看一看 scrapy-redis 插件的架构图,进一步理解该插件:scrapy-redis 插件架构图
redis相关搜索
-
radio
radiobutton
radiobuttonlist
radiogroup
radio选中
radius
rails
raise
rand
random_shuffle
randomflip
random函数
rangevalidator
rarlinux
ratio
razor
react
react native
react native android
react native 中文