python操作三大主流数据库(11)redis的安装和简单使用

命令参考文档: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:\Users\ajie>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

 

posted @ 2018-03-12 15:01  reblue520  阅读(227)  评论(0编辑  收藏  举报