admin管理员组

文章数量:1548774

From:http://www.jb51/article/56448.htm

Redis 菜鸟教程:http://www.runoob/redis/redis-tutorial.html

Redis 设计与实现:http://redisbook/

Redis基础、高级特性与性能调优:https://www.jianshu/p/2f14bc570563

Redis 官方文档

Redis 英文官网:https://redis.io/   

Redis 中文官网:

  • http://www.redis/
  • http://www.redis/

Redis 使用

  • Redis命令 redis完整的命令列表,以及他们的说明文档。
  • 管道(Pipelining):学习如何一次发送多个命令,节省往返时间。
  • Redis 发布/订阅(Pub/Sub):redis是一个快速、稳定的发布/订阅的信息系统。
  • Redis Lua 脚本:Redis 2.6 Lua 脚本相关文档。
  • Lua 脚本调试:Redis 3.2 Lua 脚本调试相关文档。
  • 内存优化:了解如何使用内存和学习一些使用技巧。
  • 过期(Expires):Redis允许为每一个key设置不同的过期时间,当它们到期时将自动从服务器上删除。
  • 将Redis当做使用LRU算法的缓存来使用:如何配置并且将Redis当做缓存来使用,通过限制内存及自动回收键。
  • Redis 事务:将一组命令放在同一个事务中进行处理。
  • 大量插入数据:如何在短时间里向Redis写入大量数据。
  • 从文件中批量插入数据:将文件中的指令批量执行。
  • 分区(Partitioning):如何将你的数据分布在多个Redis里面。
  • 分布式锁(Distributed locks):用Redis实现分布式锁管理器。
  • key事件通知(Redis keyspace notifications):通过发布/订阅获得key事件的通知(版本2.8或更高)。
  • 创建二级索引(Creating secondary indexes with Redis):使用redis的数据结构创建二级索引。

Redis modules API

  • Introduction to Redis modules. A good place to start learing about Redis 4.0 modules programming.
  • Implementing native data types. Modules scan implement new data types (data structures and more) that look like built-in data types. This documentation covers the API to do so.
  • Blocking operations with modules. This is still an experimental API, but a very powerful one to write commands that can block the client (without blocking Redis) and can execute tasks in other threads.
  • Redis modules API reference. Directly generated from the top comments in the source code inside src/module.c. Contains many low level details about API usage.

Redis 管理

  • Redis-Cli:学习怎么通过命令行使用redis。
  • 配置(Configuration):怎么配置 redis。
  • 复制(Replication):你需要知道怎么设置主从复制。
  • 持久化(Persistence):了解如何配置redis的持久化。
  • Redis 管理(Redis Administration):学习redis管理方面的知识。
  • 安全性(Security):概述Redis的安全。
  • 加密(encryption):如何加密redis的客户端与服务端通信。。
  • 信号处理(Signals Handling):如何处理Redis信号。
  • 连接处理(Connections Handling):如何处理Redis客户端连接。
  • 高可用性(High Availability):Redis Sentinel是Redis官方的高可用性解决方案。目前工作进展情况(beta阶段,积极发展),已经可用。
  • 延迟监控(Latency monitoring):redis集成的延迟监控和报告功能对于为低延迟应用场景优化redis很有帮助。
  • 基准(Benchmarks):看看Redis在不同平台上跑得有多快。
  • Redis Releases:Redis的开发周期和版本编号。

Embedded and IoT

  • Redis on ARM and Raspberry Pi:Starting with Redis 4.0 ARM and the Raspberry Pi are officially supported platforms. This page contains general information and benchmarks.

Redis Cluster

  • Redis 集群教程:入门级的Redis集群使用指南。
  • Redis 集群规范:进阶版的Redis集群使用规范。

教程 & FAQ

  • FAQ:关于Redis的一些常见问题。
  • 数据类型(Data types):Redis支持不同类型值的摘要。
  • Redis Stream(streams)介绍:详细介绍Redis5的一种新的数据类型stream。
  • 15分钟快速了解Redis的数据结构
  • 用PHP+Redis编写一个简单的Twitter
  • 用Redis实现自动完成

前言

        NoSQL数据库 非关系型数据库 ) 一度成为高并发、海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机。然而在众多产品中能够脱颖而出的却屈指可数,如 Redis、MongoDB、BerkeleyDB 和 CouchDB 等。由于每种产品所拥有的特征不同,因此它们的应用场景也存在着一定的差异,下面仅给出简单的说明:

  • 1). BerkeleyDB 是一种极为流行的开源嵌入式数据库,在更多情况下可用于存储引擎,比如 BerkeleyDB 在被 Oracle 收购之前曾作为 MySQL 的存储引擎,由此可以预见,该产品拥有极好的并发伸缩性,支持事务及嵌套事务,海量数据存储等重要特征,在用于存储实时数据方面具有极高的可用价值。然而需要指出的是,该产品的 Licence 为 GPL,这就意味着它并不是在所有情况下都是免费使用的。
  • 2). 对 MongoDB 的定义为 Oriented-Document 数据库服务器,和 BerkeleyDB 不同的是该数据库可以像其他关系型数据库服务器那样独立的运行并提供相关的数据服务。从该产品的官方文档中我们可以获悉,MongoDB 主要适用于高并发的论坛或博客网站,这些网站具有的主要特征是并发访问量高、多读少写、数据量大、逻辑关系简单,以及文档数据作为主要数据源等。和 BerkeleyDB 一样,该产品的 License 同为 GPL。
  • 3). Redis,典型的 NoSQL 数据库服务器,和 BerkeleyDB 相比,它可以作为服务程序独立运行于自己的服务器主机。在很多时候,人们只是将 Redi s视为 Key/Value 数据库服务器,然而事实并非如此,在目前的版本中,Redis 除了Key/Value之外还支持 List、Hash、Set 和 Ordered Set 等数据结构,因此它的用途也更为宽泛。对于此种误解,Redis官网也进行了相应的澄清。和以上两种产品不同的是,Redis 的 License 是 Apache License,就目前而言,它是完全免费。
  • 4). memcached,数据缓存服务器。为什么在这里要给出该产品的解释呢?很简单,因为笔者认为它在使用方式上和 Redis 最为相似。毕竟这是一篇关于 Redis 的技术系列博客,有鉴于此,我们将简要的对比一下这两个产品。首先说一下它们之间的最大区别,memcached 只是提供了数据缓存服务,一旦服务器宕机,之前在内存中缓存的数据也将全部消失,因此可以看出 memcached 没有提供任何形式的数据持久化功能,而 Redis 则提供了这样的功能。再有就是 Redis 提供了更为丰富的数据存储结构,如 Hash 和 Set。至于它们的相同点,主要有两个,一是完全免费,再有就是它们的提供的命令形式极为接近。

redis 概述

redis 是 Remote Dictionary Server 的简称,是一个由意大利人Salvatore Sanfilippo开发的key-value存储系统,具有极高的读写性能,读的速度可达110000次/s,写的速度可达81000次/s 。与Redis类似的产品还有memcache,同样是一个基于内存的key-value存储系统,但是由于memcache数据结构单一,数据安全性低下等原因,大有被Redis取而代之的趋势。redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。目前,Vmware在资助着redis项目的开发和维护。

redis 的作者何许人也?开门见山,先看照片:

是不是出乎了你的意料,嗯,高手总会有些地方与众不同的。这位便是 redis 的作者,他叫 Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于 Pivotal 公司。他使用的网名是 antirez,如果你有兴趣,可以去他的博客逛逛,地址是 antirez,当然也可以去 follow 他的 github,地址:http://github/antirez

Redis 与其他 key - value 缓存产品相比,有以下特点:

  • 1、Redis 支持数据的持久化,周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,重启的时候可以再次加载进行使用。
  • 2、Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。
  • 3、Redis 支持数据的备份,即 master-slave 模式的数据备份。
  • 4、Redis 的所有操作都是原子性的,同时 Redis 还支持对几个操作合并后的原子性执行。
  • 5、Redis 还支持 publish / subscribe ( 发布/订阅 )通知 key 过期 等高级特性。

互联网发展到现在,仅靠传统的关系型数据库已经远不能应对各种变态的需求,一个大型的互联网应用往往需要各类数据库相互合作,才能达到高可用、高性能的标准。

比如,使用 mysql/oracle/DB2 管理核心数据,使用 Memcache/Redis 管理热点数据,使用 Hbase/Hadoop 管理海量数据……总之,在合适的地方选择合适的数据库。

谁在使用 redis

Blizzard、digg、stackoverflow、github、flickr …

Redis 管理工具

Redis 安装好之后,进入安装目录的 src 文件夹,会发现里面有6个可执行文件:

它们对应着6个管理 Redis 的工具:

redis-server

该工具用于启动Redis服务器,处理与客户端的对话,一个服务器可以与多个客户端连接。
在终端输入该命令,如果启动成功,就会看到Redis那幅标志性的图片:

Redis 提示说:

Warning: no config file specified, using the defaultconfig. In order to specify a config file use Redis-server /path/to/Redis.conf

没有指定配置文件,当前使用的是默认配置。假如想使用位于路径 "/winner/setting/" 下的 Redis.conf 作为配置文件,使用命令 Redis-server /winner/setting/Redis.conf 即可。

最后一行,Redis 提示服务器已经准备好在端口 6379 接受客户端的连接,6379 是 Redis 的默认端口

至于为什么使用 6379 当做默认端口还有段传闻。写 Redis 的大神 Antirez 是意大利人,在意大利有个歌女名为 Alessia Merz,长期以来被 Antirez 及其朋友当作愚蠢的代名词,MERZ 对应的手机按键就是 6379,后来 Antirez 开发 Redis 时就使用这四个数字来当做默认端口。

redis-cli

该工具用于启动 Redis 客户端,发起与服务器的对话。可以使用参数来指定目标服务器的详细信息,例如:

  • -h  指定服务器IP地址
  • -p  指定服务器端口
  • -a  指定登录密码等

示例:Redis-cli -h 192.168.1.2 -p 6300

如不指定任何参数,则默认连接 127.0.0.1 的 6379 端口。与 Redis 服务器取得连接后,就通过指令进行数据的存取、更改等操作了:

redis-benchmark

该工具用于测试 Redis 在本机的性能,类似于鲁大师的跑分程序。运行之后会得到一组数据存取效率的报告:

redis-check-aof

Redis 虽然是基于内存的数据库,但是会创建并更新在硬盘上的备份,备份有两种方式,一个是把内存的数据导入dump.rdb文件中,另一中就是将每个执行过的命令记录到 AOF 文件中。该工具用于检查、修复 AOF 文件。

redis-check-dump

与 Redis-check-aof 类似,该工具用于检查 dump.rdb 文件。

redis-sentinel

该工具提供 Redis 实例的监控管理、通知和实例失效备援服务,是 Redis 集群的管理工具,监控各个其他节点的工作情况并且进行故障恢复,来提高集群的高可用性。

Redis GUI 工具

Redis Desktop Manager:https://redisdesktop/download

学会安装 redis

下载地址:http://redis.io/download,下载最新 Redis 版本。

$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz  
$ tar xzf redis-2.8.17.tar.gz  
$ cd redis-2.8.17  
$ sudo make && sudo make install

安装非常简单。make 成功后会在 src 文件夹下产生一些二进制可执行文件,包括 redis-server、redis-cli 等等:

$ find . -type f -executable
./redis-benchmark //用于进行redis性能测试的工具
./redis-check-dump //用于修复出问题的dump.rdb文件
./redis-cli //redis的客户端
./redis-server //redis的服务端
./redis-check-aof //用于修复出问题的AOF文件
./redis-sentinel //用于集群管理

启动 redis

下面启动 redis 服务

$ cd src  
$ ./redis-server

注意:这种方式启动 redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用下面命令启动。

$ cd src  
$ ./redis-server redis.conf

redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。启动 redis 服务进程后,就可以使用测试客户端程序 redis-cli 和 redis 服务交互了。 比如:

$ cd src  
$ ./redis-cli  
redis> set foo bar  
OK  
redis> get foo  
"bar"

Ubuntu 系统安装 Redi 

$sudo apt-get update  
$sudo apt-get install redis-server

启动 Redis:redis-server

查看 redis 是否启动:redis-cli  ,执行完这个命令后,会打开:redis 127.0.0.1:6379>  

127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令:redis 127.0.0.1:6379> ping  

以上说明我们已经成功安装了 redis。

检查 Redis 服务器程序

# 检查Redis服务器系统进程
~ ps -aux|grep redis
redis     4162  0.1  0.0  10676  1420 ?        Ss   23:24   0:00 /usr/bin/redis-server /etc/redis/redis.conf
conan     4172  0.0  0.0  11064   924 pts/0    S+   23:26   0:00 grep --color=auto redis

# 通过启动命令检查Redis服务器状态
~ netstat -nlt|grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN

# 通过启动命令检查Redis服务器状态
~ sudo /etc/init.d/redis-server status
redis-server is running

Windows 安装 Redis

redis-windows安装+配置介绍:https://wwwblogs/sxdcgaq8080/p/7204878.html

win7x64 下的 redis 安装与使用:https://wwwblogs/koal/p/5484916.html

在 Windows 系统上安装 Redis 数据库是件非常简单的事情,下载可执行安装文件(exe),双击安装即可。下载地址:https://github/rgl/redis/downloads

  • Redis 服务器运行命令:Redis 安装目录 /redis-server.exe
  • Redis 客户端运行命令:Redis 安装目录 /redis-cli.exe

Redis 命令总结 和 Redis 客户端

概述

Redis 在设计之初就被定义为长时间不间断运行的服务进程,因此大多数系统配置参数都可以在不重新启动进程的情况下立即生效。即便是将当前的持久化模式从AOF切换到RDB也无需重启。在 Redis 中,提供了一组和服务器管理相关的命令,其中就包含和参数设置有关的 CONFIG SET/GET command。

命令行 访问 Redis

安装 Redis 服务器,会自动地一起安装 Redis 命令行客户端程序。在本机输入redis-cli 命令就可以启动,客户端程序访问 Redis 服务器。

~ redis-cli
redis 127.0.0.1:6379>

# 命令行的帮助
redis 127.0.0.1:6379> help
redis-cli 2.2.12
Type: "help @" to get a list of commands in 
      "help " for help on 
      "help " to get a list of possible help topics
      "quit" to exit


# 查看所有的key列表
redis 127.0.0.1:6379> keys *
(empty list or set)

修改 Redis 的配置

使用 Redis 的访问账号

默认情况下,访问 Redis 服务器是不需要密码的,为了增加安全性我们需要设置 Redis 服务器的访问密码。设置访问密码为 redisredis。用 vi 打开 Redis 服务器的配置文件 redis.conf

~ sudo vi /etc/redis/redis.conf

#取消注释requirepass
requirepass redisredis

让 Redis 服务器被远程访问

默认情况下,Redis服务器不允许远程访问,只允许本机访问,所以我们需要设置打开远程访问的功能。用 vi 打开 Redis 服务器的配置文件 redis.conf

~ sudo vi /etc/redis/redis.conf

#注释bind
#bind 127.0.0.1

修改后,重启 Redis 服务器。

~ sudo /etc/init.d/redis-server restart
Stopping redis-server: redis-server.
Starting redis-server: redis-server.

未使用密码登陆 Redis 服务器

~ redis-cli

redis 127.0.0.1:6379> keys *
(error) ERR operation not permitted
发现可以登陆,但无法执行命令了。

登陆 Redis 服务器,输入密码

~  redis-cli -a redisredis

redis 127.0.0.1:6379> keys *
1) "key2"
2) "key3"
3) "key4"
登陆后,一切正常。

检查 Redis 服务器占用端口

~ netstat -nlt|grep 6379
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN
我们看到从之间的网络监听从 127.0.0.1:3306 变成 0 0.0.0.0:3306,表示Redis已经允许远程登陆访问。

我们在远程的另一台 Linux 访问 Redis 服务器

~ redis-cli -a redisredis -h 192.168.1.199

redis 192.168.1.199:6379> keys *
1) "key2"
2) "key3"
3) "key4"
远程访问正常。
创建Redis配置目录 /etc/redis
    mkdir /etc/redis
拷贝配置文件:
    cp /opt/redis/redis-3.2.4/redis.conf/ /etc/redis

通过指定配置文件启动;
    redis-server /etc/redis/redis.conf

通过命令redis-server 启动,可在命令后加上`&`号使redis以后台程序方式运行;
    redis-server &
客户端登陆 
    redis-cli
关闭Redis服务 
    redis-cli 进入 Redis ,然后输入 shutdown 即可。

修改redis.conf(/etc/redis下)

#打开后台运行选项
daemonize yes
#设置日志文件路径
logfile "/var/log/redis/redis.log"

管理 命令 总结

(1)ping:  测定连接是否存活
(2)echo:  在命令行打印一些内容
(3)select:选择数据库
(4)quit:  退出连接
(5)dbsize:返回当前数据库中key的数目
(6)info:  获取服务器的信息和统计
(7)monitor:实时转储收到的请求
(8)config get 配置项    :  获取服务器配置的信息
   config set 配置项 值 :  设置配置项信息
(9)flushdb:  删除当前选择数据库中所有的key
(10)flushall:删除所有数据库中的所有的key
(11)time:    显示服务器时间,时间戳(秒),微秒数
(12)bgrewriteaof:后台保存rdb快照
(13)bgsave:      后台保存rdb快照
(14)save:        保存rdb快照
(15)lastsave:    上次保存时间
(16)shutdown [save/nosave]
    注意:如果不小心运行了flushall,立即shutdown nosave,关闭服务器,
              然后手工编辑aof文件,去掉文件中的flushall相关行,
              然后开启服务器,就可以倒回原来是数据。
              如果 flushall 之后,系统恰好 bgwriteaof 了,那么 aof 就清空了,数据丢失。
(17)showlog:显示慢查询
    问:多慢才叫慢?
    答:由slowlog-log-slower-than 10000,来指定(单位为微秒)
    问:服务器存储多少条慢查询记录
    答:由slowlog-max-len 128,来做限制  



CONFIG GET parameter          
        主要用于读取服务器的运行时参数,但是并不是所有的配置参数都可以通过该命令进行读取。
        其中该命令的参数接受glob风格的模式匹配规则,因此如果参数中包含模式元字符,
        那么所有匹配的参数都将以key/value方式被列出。如果参数是*,那么该命令支持的所有参数都将被列出。
        最后需要指出的是,和redis.conf中不同的是,在命令中不能使用数量缩写格式,如GB、KB等,只能使用表示字节数量的整数值。     
CONFIG SET parameter value          
        该命令用于重新配置Redis服务器的运行时参数,在设置成功之后无需重启便可生效。
        然而并非所有的参数都可以通过该命令进行动态设置,如果需要获悉该命令支持哪些参数,可以查看CONFIG GET * 命令的执行结果。
        如果想在一个命令中设置多个同类型参数,如redis.conf配置文件中的save参数:save 900 1/save 300 10。
        在该命令中我们可以将多个key/value用双引号括起,并用空格符隔开,如:config set save "900 1 300 10"。     
        返回值中 OK表示设置成功,否则返回相关的错误信息。
CONFIG RESETSTAT        Reset INFO命令给出的统计数字。    始终返回OK。
DBSIZE                     返回当前打开的数据库中Keys的数量。    Key的数量。
FLUSHALL                清空当前服务器管理的数据库中的所有Keys,不仅限于当前打开的数据库。     
FLUSHDB                     清空当前数据库中的所有Keys。     
INFO                     获取和服务器运行状况相关的一些列统计数字。     
SAVE                     设置RDB持久化模式的保存策略。     
SHUTDOWN                停止所有的客户端,同时以阻塞的方式执行内存数据持久化。
                        如果AOF模式被启用,则将缓存中的数据flush到AOF文件。退出服务器。      
SLAVEOF host port          
        该命令用于修改SLAVE服务器的复制设置。
        如果一个Redis服务器已经处于SLAVE状态,SLAVEOF NO ONE命令将关闭当前服务器的被复制状态,
        与此同时将该服务器切换到MASTER状态。该命令的参数将指定MASTER服务器的监听IP和端口。
        还有一种情况是,当前服务器已经是另外一台MASTER的SLAVE了,在执行该命令后,
        当前服务器将终止和之前MASTER之间的复制关系,而将成为新MASTER的SLAVE,
        之前MASTER中的数据也将被清空,改为新MASTER中的数据。然而如果在当前SLAVE服务器上执行的是SLAVEOF NO ONE命令,
        那么该服务器只是中断与当前MASTER的复制关系,并升级为独立的MASTER,其中的数据也不会被清空。     
SLOWLOG subcommand [argument]          
        该命令主要用于读取执行时间较长的命令。其中执行时间的评判标准仅为命令本身的执行时间,并不包括网络交互时间。
        和该命令相关的配置参数主要有两个,第一个就是执行之间的阈值(以微秒为单位),
        即执行时间超过该值的命令都会被存入slowlog队列,以供该命令读取。
        第二个是slowlog队列的长度,如果当前命令在存入之前,该队列中的命令已经等于该参数,
        在命令进入之前,需要将队列中最老的命令移出队列。
        这样可以保证该队列所占用的内存总量保持在一个相对恒定的大小。由于slowlog队列不会被持久化到磁盘,
        因此Redis在收集命令时不会对性能产生很大的影响。
        通常我们可以将参数"slowlog-log-slower-than"设置为0,以便收集所有命令的执行时间。
        该命令还包含以下几个子命令:
        1). SLOWLOG GET N: 从slowlog队列中读取命令信息,N表示最近N条命令的信息。
        2). SLOWLOG LEN:获取slowlog队列的长度。
        3). SLOWLOG RESET:清空slowlog中的内容。
        最后给出SLOWLOG GET命令返回信息的解释。
        redis 127.0.0.1:6379> slowlog get 10
        1) 1) (integer) 5                 #唯一表示符,在Redis重启之前,该值保证唯一。
        2) (integer) 1330369320 #Unix Timestamp格式表示的命令执行时间。
        3) (integer) 13               #命令执行所用的微秒数。
        4) 1) "slowlog"               #以字符串数组的格式输出收集到的命令及其参数。
        2) "reset"

Redis 客户端

直接看一个例子:

$ ./redis-cli                     // 启动 redis 客户端
127.0.0.1:6379> set name "roc"    // 用set指令来设置key、value
OK
127.0.0.1:6379> get name          // 来获取name的值
"roc"
127.0.0.1:6379> shutdown          // 通过客户端来关闭redis服务端
127.0.0.1:6379>

一、key pattern 查询相应的 key

(1)keys key_pattern     查询满足表达式的所有key。redis 允许模糊查询key,有3个通配符  *、?、[]
(2)randomkey:          返回随机key  
(3)type key:           返回key存储的类型
(4)exists key:         判断某个key是否存在
(5)del key:            删除 key
(6)rename key newkey:  改名
(7)renamenx key newkey:如果 newkey 不存在则修改成功
(8)move key 1:         将 key 移动到1数据库
(9)ttl key:            查询 key 的生命周期(秒)
(10)expire key 整数值: 设置 key 的生命周期以秒为单位
(11)pexpire key 整数值:设置 key 的生命周期以毫秒为单位
(12)pttl key:          查询 key 的生命周期(毫秒)
(13)perisist key:      把指定 key 设置为永久有效

二、字符串类型 的操作

(1)set key value [ex 秒数] [px 毫秒数] [nx/xx]  
    如果ex和px同时写,则以后面的有效期为准
    nx:如果key不存在则建立
    xx:如果key存在则修改其值
(2)get key:取值
(3)mset key1 value1 key2 value2 一次设置多个值
(4)mget key1 key2 :          一次获取多个值
(5)setrange key offset value:把字符串的offset偏移字节改成value
                如果偏移量 > 字符串长度,该字符自动补0x00
(6)append key value :把value追加到key 的原值上
(7)getrange key start stop:获取字符串中[start, stop]范围的值
               对于字符串的下标,左数从0开始,右数从-1开始
               注意:当start>length,则返回空字符串
                  当stop>=length,则截取至字符串尾
                  如果start所处位置在stop右边,则返回空字符串
(8)getset key nrevalue:     获取并返回旧值,在设置新值
(9)incr key:                自增,返回新值,如果incr一个不是int的value则返回错误,incr一个不存在的key,则设置key为1
(10)incrby key 2:           跳2自增
(11)incrbyfloat by 0.7:     自增浮点数 
(12)setbit key offset value:设置offset对应二进制上的值,返回该位上的旧值
                注意:如果offset过大,则会在中间填充0
                  offset最大到多少
                   2^32-1,即可推出最大的字符串为512M
(13)bitop operation destkey key1 [key2..]    对key1 key2做opecation并将结果保存在destkey上
                        opecation可以是AND OR NOT XOR
(14)strlen key:          取指定key的value值的长度
(15)setex key time value:设置key对应的值value,并设置有效期为time秒<

本文标签: 入门教程数据库Redis