命令参考文档:http://www.redis.cn/topics/introduction.html
1.安装及配置
官网https://redis.io
中文网站:http://www.redis.cn
windows版本下载地址:https://github.com/MSOpenTech/redis/releases
可以看到安装成了系统服务
2.字符串(String)相关操作
set -- 设置值
get -- 获取值
mset -- 设置多个键值对
mget -- 获取多个键值对
append -- 添加字符串
del -- 删除
incr/decr -- 数字加1、减1
设置、获取值 C:Usersajie>redis-cli 127.0.0.1:6379> set animal 'cat' OK 127.0.0.1:6379> get animal "cat" 127.0.0.1:6379> set animal 'dog' OK 127.0.0.1:6379> get animal "dog" 127.0.0.1:6379> append animal ' cat' (integer) 7 127.0.0.1:6379> get animal "dog cat" 设置获取多个值 127.0.0.1:6379> mset user1 'jhon' user2 'amy' OK 127.0.0.1:6379> get user1 "jhon" 127.0.0.1:6379> get user2 "amy" 127.0.0.1:6379> mget user1 user2 animal 1) "jhon" 2) "amy" 3) "dog cat" 127.0.0.1:6379> del user2 (integer) 1 127.0.0.1:6379> del user2 (integer) 0 127.0.0.1:6379> get user2 (nil) incr/decr数字加1、减1 127.0.0.1:6379> set num 10 OK 127.0.0.1:6379> get num "10" 127.0.0.1:6379> set num 9 OK 127.0.0.1:6379> get num "9" 127.0.0.1:6379> decr num (integer) 8 127.0.0.1:6379> get num "8" 127.0.0.1:6379> incr num (integer) 9 127.0.0.1:6379> get num "9" 设置键的过期时间 127.0.0.1:6379> set animal 'monkey' ex 5 OK 127.0.0.1:6379> get animal "monkey" 127.0.0.1:6379> get animal (nil)
3.列表(list)相关操作
lpush/rpush -- 从左/右插入数据
lrange -- 获取指定长度的数据
ltrim -- 截取一定长度的数据
lpop/rpop -- 移除最左、右的元素并返回
lpushx/rpushx -- key存在的时候才插入数据,不存在时不做任何处理
插入多条数据 127.0.0.1:6379> lpush q1 'jhon' 'cat' 'amy' (integer) 3 127.0.0.1:6379> llen q1 (integer) 3 127.0.0.1:6379> lrange q1 0 -1 1) "amy" 2) "cat" 3) "jhon" 127.0.0.1:6379> lrange q1 0 8888 1) "amy" 2) "cat" 3) "jhon" 127.0.0.1:6379> rpush q1 'bob' (integer) 4 127.0.0.1:6379> lrange q1 0 888 1) "amy" 2) "cat" 3) "jhon" 4) "bob" 127.0.0.1:6379> lpush q1 'okone' (integer) 5 127.0.0.1:6379> lrange q1 0 -1 1) "okone" 2) "amy" 3) "cat" 4) "jhon" 5) "bob" 存在键就插入 127.0.0.1:6379> lpushx q1 'zhangsan' (integer) 6 127.0.0.1:6379> lrange q1 0 -1 1) "zhangsan" 2) "okone" 3) "amy" 4) "cat" 5) "jhon" 6) "bob" 不存在,不做任何操作 127.0.0.1:6379> lpushx q2 'AMY' (integer) 0 127.0.0.1:6379> lrange q1 0 -1 1) "zhangsan" 2) "okone" 3) "amy" 4) "cat" 5) "jhon" 6) "bob" 截取0-2的键 127.0.0.1:6379> ltrim q1 0 2 OK 127.0.0.1:6379> lrange q1 0 -1 1) "zhangsan" 2) "okone" 3) "amy"
4.集合(set)的相关操作
sadd/srem -- 添加/删除元素
sismember -- 判断是否为set的一个元素
smembers -- 返回该集合的所有成员
sdiff -- 返回一个集合与其他集合的差异
sinter -- 返回几个集合的交集
sunion -- 返回几个集合的并集
向集合zoo中添加Cat和Dog元素 127.0.0.1:6379> sadd zoo Cat Dog (integer) 2 127.0.0.1:6379> smembers zoo 1) "Dog" 2) "Cat" 127.0.0.1:6379> srem zoo Cat (integer) 1 127.0.0.1:6379> srem zoo Cat (integer) 0 127.0.0.1:6379> sismember zoo Cat (integer) 0 127.0.0.1:6379> sismember zoo Dog (integer) 1 127.0.0.1:6379> smembers zoo 1) "Dog" 127.0.0.1:6379> sadd zoo Cat (integer) 1 127.0.0.1:6379> smembers zoo 1) "Dog" 2) "Cat" 127.0.0.1:6379> sadd zoo1 Cat Cow (integer) 2 127.0.0.1:6379> smembers zoo1 1) "Cow" 2) "Cat" 127.0.0.1:6379> smembers zoo 1) "Dog" 2) "Cat" 比较集合的差异 127.0.0.1:6379> sdiff zoo zoo1 1) "Dog" 127.0.0.1:6379> sdiff zoo1 zoo 1) "Cow" 返回集合的交集 127.0.0.1:6379> sinter zoo zoo1 1) "Cat" 返回集合的并集 127.0.0.1:6379> sunion zoo zoo1 1) "Cow" 2) "Dog" 3) "Cat"
5.散列hash相关操作
hset/hget -- 设置/获取散列值
hmset/hmget --设置/获取多对散列值
hsetnx -- 如果散列已经存在,则不设置
hkeys/hvals -- 返回所有keys/values
hlen -- 返回散列包含域(field)的数量
hdel -- 删除散列指定的域(field)
hexists -- 判断是否存在
设置news:1的title和content内容 127.0.0.1:6379> hset news:1 title 'News title' (integer) 1 127.0.0.1:6379> hset news:1 content 'news content' (integer) 1 127.0.0.1:6379> hget news:1 title "News title" 127.0.0.1:6379> hget news:1 content "news content" 127.0.0.1:6379> hmget news:1 title content 1) "News title" 2) "news content" 127.0.0.1:6379> hmset news:2 title 'Title2' content 'Content2' is_valid 1 OK 127.0.0.1:6379> hmget news:2 title content is_valid 1) "Title2" 2) "Content2" 3) "1" 获取keys和values 127.0.0.1:6379> hkeys news:1 1) "title" 2) "content" 127.0.0.1:6379> hkeys news:2 1) "title" 2) "content" 3) "is_valid" 127.0.0.1:6379> hvals news:1 1) "News title" 2) "news content" 127.0.0.1:6379> hvals news:2 1) "Title2" 2) "Content2" 3) "1" 127.0.0.1:6379> hlen news:1 (integer) 2 127.0.0.1:6379> hlen news:2 (integer) 3 127.0.0.1:6379> hdel news:2 is_valid (integer) 1 127.0.0.1:6379> hdel news:2 is_valid (integer) 0 127.0.0.1:6379> hlen news:2 (integer) 2 判断值是否存在 127.0.0.1:6379> hexists news:2 is_valid (integer) 0 127.0.0.1:6379> hset news:2 is_valid 1 (integer) 1 127.0.0.1:6379> hexists news:2 is_valid (integer) 1