redis是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
支持的语言:
- Common Lisp
目录
- Dart
- Erlang
- Go
- Haskell
|
- Haxe
- Io
- Java
- Node.js
- Lua
- Objective-C
- Perl
- PHP
- Pure Data
- Python
- R
- Ruby
- Scala
- Smalltalk
- Tcl
下载解压和安装redis;
在你安装的目录下有以下文件:
其中src下有:
两个文件 一个是客户端 另一个 服务端
先启动服务端: ./redis-server(不能退出,另启一个窗口启动客户端redis-cli)
再启动客户端: ./redis-cli
-------------------------------------------------------------------------------------------------------------------------------------------
将字符串值 value
关联到 key
。
如果 key
已经持有其他值, SET
就覆写旧值, 无视类型。
当 SET
命令对一个带有生存时间(TTL)的键进行设置之后, 该键原有的 TTL 将被清除。
从 Redis 2.6.12 版本开始, SET
命令的行为可以通过一系列参数来修改:
EX seconds
: 将键的过期时间设置为seconds
秒。 执行SET key value EX seconds
的效果等同于执行SETEX key seconds value
。PX milliseconds
: 将键的过期时间设置为milliseconds
毫秒。 执行SET key value PX milliseconds
的效果等同于执行PSETEX key milliseconds value
。NX
: 只在键不存在时, 才对键进行设置操作。 执行SET key value NX
的效果等同于执行SETNX key value
。XX
: 只在键已经存在时, 才对键进行设置操作- 因为
SET
命令可以通过参数来实现SETNX
、SETEX
以及PSETEX
命令的效果, 所以 Redis 将来的版本可能会移除并废弃SETNX
、SETEX
和PSETEX
这三个命令。 -
在 Redis 2.6.12 版本以前,
SET
命令总是返回OK
。从 Redis 2.6.12 版本开始,
SET
命令只在设置操作成功完成时才返回OK
; 如果命令使用了NX
或者XX
选项, 但是因为条件没达到而造成设置操作未执行, 那么命令将返回空批量回复(NULL Bulk Reply)。 -
例如:
目录
对哈希表操作:
HSET:
将哈希表 hash
中域 field
的值设置为 value
。
如果给定的哈希表并不存在, 那么一个新的哈希表将被创建并执行 HSET
操作。
如果域 field
已经存在于哈希表中, 那么它的旧值将被新值 value
覆盖。
返回值
当 HSET
命令在哈希表中新创建 field
域并成功为它设置值时, 命令返回 1
; 如果域 field
已经存在于哈希表, 并且 HSET
命令成功使用新值覆盖了它的旧值, 那么命令返回 0
。
例如:
还有其他一些我就不再举列说明了: