基本操作
- 新建一个值:
SET server:name "fido"
- 检查是否存在:
EXISTS server:name/*return 0 or 1*/
- 查询值:
GET server:name
- 删除值:
DEL connection
- 原子地改变密锁的上的值
1
2
3
4INCR connection
DECR connection
INCRBY connection 10
DECRBY connection 10 - 设置密锁存在时间
1
2EXPIRE connection 120/*这里的时间以毫秒为单位*/
SET connection 10 EX 120/*简单定义*/ - 获取密锁剩余的时间
1
2
3TTL connection
/*返回值为-2代表密锁不存在
返回值为-1表示密锁没有设置终止时间*/ - 取消密锁存在时间:
PERSIST connection
- 查询所有的键:
keys *
- 获取键对应得值类型:
type name
列表
- 将元素放在列表开头或末尾
1
2
3
4
5
6RPUSH STRS A //在末尾放元素
LPUSH STRS B //在开头放元素
RPUSH STRS A B C
LPUSH STRS A B C
/*在操作后返回列表的总长度*/ - 检索列表
1
2
3LRANGE STRS 0 2
/*第二个参数的值-1表示检索元素直到列表的末尾
-2表示检索到倒数第二个*/ - 从列表中删除第一个元素并返回它:
LPOP STRS
- 从列表中删除最后一个元素并返回它:
RPOP STRS
- 返回列表长度:
LLEN STRS
- 列表优点:保存元素顺序,快速访问顶部或底部元素
集合
- 向集合中放入元素
1
2SADD color "green"
SADD color "black" "red" - 从集合中删除元素
1
2SREM color "green"
/*返回1表示存在,返回0表示不存在*/ - 检查集合中是否存在元素:
SISMEMBER color "red" /*返回1表示存在,返回0表示不存在*/
- 检索集合中的全部元素:
SMEMBERS color
- 检索多个集合中的元素:
SUNION color color2
- 删除随机元素并返回:
SPOP color 3
- 集合优点:集合中可以快速测试成员资格,但元素间没有特定的顺序
排序集
- 向排序集中放入元素
1
2
3
4ZADD hackers 1940 "Alan Kay"
ZADD hackers 1906 "Grace Hopper"
ZADD hackers 1953 "Richard Stallman"
ZADD hackers 1965 "Yukihiro Matsumoto" - 检索排序集
ZRANGE hackers 2 4
- 排序集优点:排序的~
哈希(map)
- 放入数据
1
2
3
4
5HSET user:1000 name "John Smith"
HSET user:1000 email "john.smith@example.com"
HSET user:1000 password "s3cret"
HMSET user:1001 name "Mary" password "hidden" email "xxx.com" - 获取键对
1
2
3HGETALL user:1000/*获取全部键对*/
HGET user:1001/*获取单个键对*/
持久化
- 默认持久化:BDR
1
2
3
4/*编辑redis.windows.conf文件*/
save 60 10 每60秒如果有10个键改变,持久化一次
/*启动服务器*/
redis-server.exe redis.windows.conf - AOF未完待续
1
2
3
4
5
6
7
8/*编辑redis.windows.conf文件*/
appendonly yes 开启
appendonly no 关闭
appendfsync always 每次操作都持久化一次
apppendfsync everysec 每隔一秒持久化一次
appendfsync no 不进行持久化
/*启动服务器*/
redis-server.exe redis.windows.conf
在Java中使用Redis详见 Jedis使用文档