Redis 基本操作
- Redis
- 2017-11-22
- 193热度
- 0评论
导航
Redis 简介
图形化管理工具:Redis Desktop Manager
用途:数据库、缓存和消息中间件
主要类型:
(本文整理自慕课网教程,涵盖 redis 常用操作)
Redis 安装和启动
brew install redis
安装 redis。
安装完毕后:
redis-server
,启动服务器
redis-cli
,连接服务器
String 类型相关操作
- set——设置值
- get——获取值
- mset——设置多个键值对
- mget——获取多个键值对
- append——添加字符串
- del——删除
- incr/decr——增加/减少 1
➜ ~ 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)
127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> get num
"10"
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> get num
"9"
127.0.0.1:6379> incr num
(integer) 10
127.0.0.1:6379> get num
"10"
127.0.0.1:6379> get animal
"Dog Cat"
127.0.0.1:6379> del animal
(integer) 1
127.0.0.1:6379> get animal
(nil)
127.0.0.1:6379> set animal 'Cat' EX 5
OK
127.0.0.1:6379> get animal
"Cat"
127.0.0.1:6379> get animal
(nil)
127.0.0.1:6379> set user:john;age:45 '000000000'
OK
127.0.0.1:6379> get user:john;age:45
"000000000"
127.0.0.1:6379>
List 类型相关操作
- lpush/rpush——从左/右插入数据
- llen——获取列表的长度
- 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> rpush q1 'Bob'
(integer) 4
127.0.0.1:6379> lrange q1 0 9999
1) "Amy"
2) "Cat"
3) "Jhon"
4) "Bob"
127.0.0.1:6379> lpush q1 'Okw'
(integer) 5
127.0.0.1:6379> lrange q1 0 -1
1) "Okw"
2) "Amy"
3) "Cat"
4) "Jhon"
5) "Bob"
127.0.0.1:6379> lpushx q1 'Zhang1'
(integer) 6
127.0.0.1:6379> lrange q1 0 -1
1) "Zhang1"
2) "Okw"
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) "Zhang1"
2) "Okw"
3) "Amy"
4) "Cat"
5) "Jhon"
6) "Bob"
127.0.0.1:6379> ltrim q1 0 2
OK
127.0.0.1:6379> lrange q1 0 -1
1) "Zhang1"
2) "Okw"
3) "Amy"
127.0.0.1:6379> lpop q1
"Zhang1"
127.0.0.1:6379> lrange q1 0 -1
1) "Okw"
2) "Amy"
127.0.0.1:6379> rpop q1
"Amy"
127.0.0.1:6379> lrange q1 0 -1
1) "Okw"
127.0.0.1:6379>
Set 类型相关操作
- sadd/srem——添加/删除元素
- sismember——判断是否为set的一个元素
- smembers——返回该集合的所有成员
- sdiff——返回一个集合与其他集合的差异
- sinter——返回几个集合的交集
- union——返回几个集合的并集
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> sinter zoo1 zoo
1) "Cat"
127.0.0.1:6379> sunion zoo zoo1
1) "Cow"
2) "Dog"
3) "Cat"
127.0.0.1:6379>
Hash 类型相关操作
- hset/hget——设置/获取散列值
- hmset/hmget——设置/获取多对散列值
- hsetnx——如果散列已经存在,则不设置
- hkeys/hvals——返回所有Keys/Values
- hlen——返回散列包含域(field)的数量
- hdel——删除散列指定的域(field)
- hexists——判断是否存在
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"
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: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
127.0.0.1:6379>