1 安装redis
2 redis的基本操作
- 字符串
SETNX key value
只在key不存在的情况下,将键key的值设置为value。若键已经存在,则setnx命令不做任何动作。命令在设置成功时返回1,设置失败时返回01
2
3redis> EXISTS job # 查看job是否存在
redis> SETNX job "progtammer" # 设置key的值
redis> SETNX job "code-farmer" # 覆盖job 失败SETEX key seconds value
将key的值设为value,并设置超时时间seconds秒,如果key存在,则SETEX将覆盖原有的值 当seconds参数不合法是,返回一个错误1
2
3
4
5
6
7
8redis> SETEX cache_user_id 60 10086
OK
redis> GET cache_user_id # 值
"10086"
redis> TTL cache_user_id # 剩余生存时间
(integer) 49PSETEX key milliseconds value
和setex命令相似,以毫秒为单位设置生存时间GET key
返回键key相关联的字符串 如果键key不存在,那么返回特殊的值nil,否则返回key的值1
2
3
4
5
6
7
8redis> GET db
(nil)
redis> SET db redis
OK
redis> GET db
"redis"GETSET key value
将键的值设为value,并返回键在被设置之前的旧值STRLEN
返回key存储的字符串值的长度 当key不存在的时候返回0,当key存储的不是字符串的时候,返回一个错误APPEND key value
如果key的值已经存在并且他的值是一个键值对,append命令将把value追加到键key现有值的末尾,返回加到value后键key的长度STRANGE key offset value
从offset开始,将key存储的原字符串用value重写,如果键 key 原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,但你设置的 offset 是 10 ), 那么原字符和偏移量之间的空白将用零字节(zerobytes, “\x00” )进行填充。
因为 Redis 字符串的大小被限制在 512 兆(megabytes)以内, 所以用户能够使用的最大偏移量为 2^29-1(536870911) , 如果你需要使用比这更大的空间, 请使用多个 key 。返回字符串的长度1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17redis> SET greeting "hello world"
OK
redis> SETRANGE greeting 6 "Redis"
(integer) 11
redis> GET greeting
"hello Redis"
# 对空字符串和不存在的键值执行STRANGE命令
redis> EXISTS empty_string
(integer) 0
redis> SETRANGE empty_string 5 "Redis!" # 对不存在的 key 使用 SETRANGE
(integer) 11
redis> GET empty_string # 空白处被"\x00"填充
"\x00\x00\x00\x00\x00Redis!"GETRANGE key start end
返回键 key 储存的字符串值的指定部分, 字符串的截取范围由 start 和 end 两个偏移量决定 (包括 start 和 end 在内)。
负数偏移量表示从字符串的末尾开始计数, -1 表示最后一个字符, -2 表示倒数第二个字符, 以此类推。
GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。
1 | redis> SET greeting "hello, my friend" |
INCR key
为键 key 储存的数字值加上一。
如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令。
如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
INCR 命令会返回键 key 在执行加一操作之后的值
INCR 命令是一个针对字符串的操作。 因为 Redis 并没有专用的整数类型, 所以键 key 储存的值在执行 INCR 命令时会被解释为十进制 64 位有符号整数。
1 | redis> SET page_view 20 |
INCRBY key increment
为键 key 储存的数字值加上增量 increment 。
INCRBYFLOAT key increment
为键 key 储存的值加上浮点数增量 increment 。
DECR key
为键 key 储存的数字值减去一。
DECRBY key decrement
将键 key 储存的整数值减去减量 decrement 。
MSET key value [key value …]
同时为多个键设置值。
如果某个给定键已经存在, 那么 MSET 将使用新值去覆盖旧值, 如果这不是你所希望的效果, 请考虑使用 MSETNX 命令, 这个命令只会在所有给定键都不存在的情况下进行设置。
MSET 是一个原子性(atomic)操作, 所有给定键都会在同一时间内被设置, 不会出现某些键被设置了但是另一些键没有被设置的情况。
1 | redis> MSET date "2012.3.30" time "11:00 a.m." weather "sunny" |