资源说明:Redis 用法 简单说明ppt
初学者试用。
string:
===============================================================================
SET name "John Doe"
GET name
批量的读写操作
MSET age 30 sex "male"
MGET age sex
存储数字
INCR age
INCRBY age 4
GET age
DECR age
DECRBY age 4
GET age
修改和获取操作
APPEND name " Mr."
GET name
STRLEN name
SUBSTR name 0 3
bit操作
SETBIT bit 10086 1
SETBIT bit 200 1
SETBIT bit 300 1
GETBIT bit 10086
GETBIT bit 100
BITCOUNT bit
设置超时
SETEX key_with_time 10 "same values"
ttl key_with_time
ttl key_with_time
get key_with_time
如果服务器返回 OK ,那么这个客户端获得锁。
如果服务器返回 NIL ,那么客户端获取锁失败,可以在稍后再重试。
第一次成功,第二次失败(nil)
set unknown "some data" NX EX 100
set unknown "some data" NX EX 100
key
=====================================================================================
keys *
SET name huangz
EXISTS name
DEL name
数据过期设置
SET name "John Doe"
TTL name
先用EXISTS命令查看key值是否存在,然后设置了5秒的过期时间
EXISTS name
EXPIRE name 5
EXISTS name
GET name
List
=====================================================================================
基本list操作
LPUSH students "John Doe"
LPUSH students "Captain Kirk"
LPUSH students "Sheldon Cooper"
LLEN students
LRANGE students 0 2
LPOP students
LLEN students
LRANGE students 0 1
LREM students 1 "John Doe"
LLEN students
LRANGE students 0 -1
多种修改操作
LINSERT students BEFORE "Captain Kirk" "Dexter Morgan"
LRANGE students 0 -1
LPUSH students "Peter Parker"
LRANGE students 0 -1
LTRIM students 1 3
LLEN students
LRANGE students 0 2
LREM students 1 "John Doe"
LLEN students
LRANGE students 0 1
阻塞行为
确保key都被删除, 为command列表增加一个值,job 列表为空,被跳过,紧接着 command 列表的第一个元素被
DEL job command request
LPUSH command "update system..."
LPUSH request "visit page"
BLPOP job command request 300
BLPOP job command request 300
BLPOP job command request 300
从别的窗口
LPUSH job "aaa"
等待10秒回怎样呢?
BLPOP job command request 10
在MULTI/EXEC事务中的BLPOP
# 对非空列表进行操作
RPUSH job "programming"
MULTI
BLPOP job 30
EXEC # 不阻塞,立即返回
# 对空列表进行操作
LLEN job
MULTI
BLPOP job 30
EXEC #不阻塞,立即返回(nil)
SET
=====================================================================================
基本操作
SADD birds crow
SADD birds pigeon
SADD birds bat
SADD mammals dog
SADD mammals cat
SADD mammals bat
SMEMBERS birds
SMEMBERS mammals
修改操作
SREM mammals cat
SMEMBERS mammals
SADD mammals human
SMEMBERS mammals
SISMEMBER mammals human
集合的子交并补等操作
SINTER birds mammals
SUNION birds mammals
SDIFF birds mammals
Ordered SET
=====================================================================================
ZADD days 0 mon
ZADD days 1 tue
ZADD days 2 wed
ZADD days 3 thu
ZADD days 4 fri
ZADD days 5 sat
ZADD days 6 sun
ZCARD days
ZRANGE days 0 6
ZSCORE days sat
ZCOUNT days 3 6
ZRANGE days 0 -1
ZRANGE days 0 -1 WITHSCORES
ZREVRANGE days 0 -1
ZREVRANGE days 0 -1 WITHSCORES
ZRANGEBYSCORE days 0 6
ZRANGEBYSCORE days 0 6 WITHSCORES
ZRANK days sat
HASH
=====================================================================================
HSET student name "Ganesh"
HSET student age 30
HSET student sex "Male"
HKEYS student
HVALS student
HGETALL student
HGET student sex
HDEL student sex
HGETALL student
多值设置
HMSET kid name Akshi age 2 sex Female
HMGET kid name age sex
数据库操作
=====================================================================================
DBSIZE # 0 号数据库的 key 数量
SELECT 1 # 切换到 1 号数据库
DBSIZE # 1 号数据库的 key 数量
flushall # 清空所有数据库的所有 key
DBSIZE # 不但 1 号数据库被清空了
SELECT 0 # 0 号数据库(以及其他所有数据库)也一样
DBSIZE
-在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个 key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。
这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。
Publish/Subscribe
=====================================================================================
用一个客户端订阅管道
SUBSCRIBE channelone
另一个客户端往这个管道推送信息
PUBLISH channelone hello
PUBLISH channelone world
用一个客户端订阅所有channel开头的信息通道
PSUBSCRIBE channel*
另一个客户端对两个推送信息
PUBLISH channelone hello
PUBLISH channeltwo world
事务性
=====================================================================================
NX结尾命令都是判断在这个值没有时才进行某个命令。
SET name "John Doe"
SETNX name "Dexter Morgan"
GET name
Redis还支持自定义的命令组合,通过MULTI和EXEC,将几个命令组合起来执行
SET counter 0
MULTI
INCR counter
INCR counter
INCR counter
EXEC
GET counter
DISCARD命令来中断执行中的命令序列
SET counter 0
MULTI
INCR counter
INCR counter
INCR counter
DISCARD
GET counter
持久化
=====================================================================================
数据快照的原理是将整个Redis中存的所有数据遍历一遍存到一个扩展名为rdb的数据文件中。通过SAVE命令可以调用这个过程。
SET name "John Doe"
SAVE
SET name "Sheldon Cooper"
BGSAVE
/home/dong1/redis-2.6.16/src/dump.rdb
其日志文件以aof结局,我们一般各为aof文件。要开启aof日志的记录
你需要在配置文件中进行如下设置:
appendonly yes
管理命令
=====================================================================================
Redis支持多个DB,默认是16个,你可以设置将数据存在哪一个DB中,不同DB间的数据具有隔离性。也可以在多个DB间移动数据。
SELECT 0
SET name "John Doe"
SELECT 1
GET name
SELECT 0
MOVE name 1
SELECT 1
GET name
DBSIZE
INFO
FLUSHDB
SET name "John Doe"
DBSIZE
SELECT 1
DBSIZE
SELECT 0
FLUSHDB
DBSIZE
FLUSHALL
DBSIZE
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。