本自述文件只是一个快速*快速入门*文档。您可以在[redis.io](https://redis.io)找到更详细的文档。
=============================================================
常用命令:
一.安装.
1. 下载:
https://redis.io/download
2. 下载文件& 解压
tar -xzvf redis-5.0.3.tar.gz
3.编译:
cd redis-5.0.3
make
4.测试
make test
5.修改配置
vi redis-5.0.3/redis.conf
5.1 修改参数 (后台启动) :
daemonize yes
5.2 注释绑定的主机地址(不改, 客户端拒绝连接) :
#bind 127.0.0.1
5.3 关闭保护模式(不改, 客户端拒绝连接) :
protected-mode no
6.启动服务
启动服务: redis-server /data/redis-5.0.3/redis.conf
停止服务: redis-cli -h 127.0.0.1 -p 6379 shutdown
7.配置环境变量:
vi /etc/profile
export REDIS_HOME=/data/redis-5.0.3
export PATH=$PATH:$REDIS_HOME/src
source /etc/profile
8.连接
本地连接: redis-cli
远程连接: $ redis-cli -h host -p port -a password
避免中文乱码: redis-cli --raw
9. 测试.
[root@hadoop006 src]# ./redis-cli
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> set runoobkey redis
OK
127.0.0.1:6379> get runoobkey
"redis"
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> del runoobkey
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> get runoobkey
(nil)
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
10. 常用命令
flushall 清空所有数据库
flushdb 清空当前数据库
关闭:
redis-cli ==> shutdown
=============================================================
Redis通常被称为*数据结构*服务器。这意味着Redis通过一组命令提供对可变数据结构的访问,这些命令使用带有TCP套接字和简单协议的* server-client *模型发送。因此,不同的进程可以以共享方式查询和修改相同的数据结构。
Redis中实现的数据结构有一些特殊属性:
* Redis关心将它们存储在磁盘上,即使它们总是被提供并修改到服务器内存中。这意味着Redis速度很快,但这也是非易失性的。
*数据结构的实现强调内存效率,因此与使用高级编程语言建模的相同数据结构相比,Redis内部的数据结构可能会使用更少的内存。
* Redis提供了许多在数据库中很容易找到的功能,如复制,可调节的持久性,群集,高可用性。
另一个很好的例子是将Redis视为memcached的更复杂版本,其中操作不仅仅是SET和GET,而是用于处理复杂数据类型(如Lists,Sets,有序数据结构等)的操作。
如果您想了解更多信息,请参阅选定的起点列表:
* Redis数据类型简介。http://redis.io/topics/data-types-intro
*直接在浏览器中试用Redis。http://try.redis.io
* Redis命令的完整列表。http://redis.io/commands
* Redis官方文档中还有更多内容。http://redis.io/documentation
Redis可以在Linux,OSX,OpenBSD,NetBSD,FreeBSD上编译和使用。
我们支持大端和小端架构,以及32位
和64位系统。
它可以在Solaris派生系统(例如SmartOS)上编译,但是我们
对这个平台的支持是*尽力而为*并且不保证Redis
在Linux,OSX和\ * BSD中工作得很好。
它很简单:
% make
您可以使用以下命令运行32位Redis二进制文件:
% make 32bit
在构建Redis之后,最好使用以下方法对其进行测试:
% make test
Redis有一些依赖项,它们包含在`deps`目录中。
即使依赖项
源代码中的某些内容发生更改,`make`也不会自动重建依赖项。
当您使用`git pull`更新源代码或者
以任何其他方式修改依赖项树中的代码时,请确保使用以下
命令以便真正清理所有内容并从头开始重建:
这将清理:jemalloc,lua,hiredis,linenoise。
此外,如果您强制某些构建选项(如32位目标,没有C编译器
优化(用于调试目的))和其他类似的构建时选项,
那么这些选项将无限期地缓存,直到您发出`make distclean`
命令。
修复构建32位二进制文件的问题
---------
如果在使用32位目标构建Redis之后需要
使用64位目标重建它,或者
反过来,则需要在Redis发行版的根目录中执行`make distclean`。
如果在尝试构建Redis的32位二进制文件时出现构建错误,请尝试
以下步骤:
*安装包 libc6-dev-i386 (also try g++-multilib).
*尝试使用以下命令行而不是`make 32bit`:
`make CFLAGS="-m32 -march=native" LDFLAGS="-m32"`
分配器
---------
在构建Redis时选择非默认内存分配器是通过设置
`MALLOC`环境变量来完成的。
默认情况下,Redis是针对libc malloc 编译和链接的,除了jemalloc是Linux
系统上的默认设置。选择此默认值是因为jemalloc已证明
比libc malloc 具有更少的碎片问题。
要强制编译libc malloc,请使用:
% make MALLOC=libc
要在Mac OS X系统上针对jemalloc进行编译,请使用:
% make MALLOC=jemalloc
详细构建
-------------
默认情况下,Redis将使用用户友好的彩色输出进行构建。
如果要查看更详细的输出,请使用以下命令:
% make V=1
运行Redis
-------------
要使用默认配置运行Redis,只需键入:
% cd src
% ./redis-server
如果要提供redis.conf,则必须使用其他
参数(配置文件的路径)运行它:
% cd src
% ./redis-server /path/to/redis.conf
可以通过
使用命令行直接将参数作为选项传递来更改Redis配置。例子:
% ./redis-server --port 9999 --replicaof 127.0.0.1 6379
% ./redis-server /etc/redis/6379.conf --loglevel debug
使用命令
行支持redis.conf中的所有选项作为选项,名称完全相同。
您可以使用redis-cli与Redis一起Playing 。启动redis-server实例,
然后在另一个终端中尝试以下操作:
% cd src
% ./redis-cli
redis> ping
PONG
redis> set foo bar
OK
redis> get foo
"bar"
redis> incr mycounter
(integer) 1
redis> incr mycounter
(integer) 2
redis>
您可以在http://redis.io/commands找到所有可用命令的列表。
要将Redis二进制文件安装到 /usr/local/bin 中,只需使用:
% make install
如果您想安装到其他位置,可以使用 `make PREFIX=/some/other/directory install` 。
make install只会在系统中安装二进制文件,但不会配置初始化脚本和配置文件
如果您只想与Redis一起玩,则不需要这样做,但如果您正在
为生产系统安装它,我们有一个脚本
为Ubuntu和Debian系统执行此操作:
% cd utils
% ./install_server.sh
该脚本将向您提出几个问题,并将设置您
正确运行Redis作为后台守护程序所需的一切,该守护程序将在
系统重新启动时重新启动。
你将会使用脚本 启动&停止Redis :
`/etc/init.d/redis_
例如: `/etc/init.d/redis_6379`.
Redis根目录只包含这个README,Makefile
调用`src`目录中的实际Makefile以及
Redis和Sentinel 的示例配置。您可以找到一些
用于执行Redis,Redis Cluster和
Redis Sentinel单元测试的shell 脚本,这些测试在`tests`
目录中实现。
根目录中有以下重要目录:
*`src`:包含Redis实现,用C编写.
*`tests`编写: 包含单元测试, 使用T cl 实现。
*`deps`:包含Redis使用的库。编译Redis所需的一切都在这个目录中; 你的系统只需要提供`libc`,POSIX兼容接口和C编译器。值得注意的是,“deps”包含了一个`jemalloc`的副本,它是Linux下Redis的默认分配器。请注意,在`deps`下也有从Redis项目开始的东西,但主存储库不是`antirez/redis`。这个规则的一个例外是`deps/geohash-int`,它是Redis使用的低级geocoding library :它源自一个不同的项目,但此时它分支太多,以至于它被直接开发为一个独立的实体。 Redis存储库。
还有一些目录,但它们对我们的目标不是很重要
。我们将主要关注`src`,其中包含Redis实现,
探索每个文件中的内容。文件被
公开的顺序是遵循的逻辑顺序,以便逐步地公开不同
的复杂层。
注意:最近Redis被重构了很多。函数名称和文件
名已更改,因此您可能会发现此文档
更密切地反映了`unstable`分支。例如在Redis 3.0中,`server.c`
和`server.h`文件被命名为`redis.c`和`redis.h`。但总体
结构是一样的。请记住,所有新开发和pull
请求都应该针对`unstable`分支执行。
server.h
---
理解程序如何工作的最简单方法是理解
它使用的数据结构。所以我们将从
Redis 的主头文件开始,它是`server.h`。
所有服务器配置和一般所有共享状态都
在名为`server`的全局结构中定义,类型为`struct redisServer`。
该结构中的一些重要领域是:
*`server.db`是Redis数据库的数组,其中存储了数据。
*`server.commands`是命令表。
*`server.clients`是连接到服务器的客户端的链接列表。
*`server.master`是一个特殊的客户端,如果实例是副本,则是主服务器。
还有很多其他领域。大多数字段都直接在
结构定义中注释。
后面的东西,目前参考一下,看看.
详情请参看官方API: https://redis.io