Redis 客户端基本操作

2018-07-10  本文已影响0人  Manchangdx

Redis 是一个内存数据库,通过 Key-Value 键值对的方式存储数据
由于 Redis 的数据都存储在内存中,所以访问速度非常快
因此 Redis 大量用于缓存系统,存储热点数据
这样可以极大地提高网站的响应速度
相对于其它内存数据库,Redis 具有以下优点:

1、支持数据的持久化,通过配置可以将内存中的数据保存在磁盘中
Redis 启动以后自动将数据加载到内存中
2、支持字符串、字典 / 哈希、列表、集合、有序集合等数据结构
上面这些数据结构,指的是 Key-Value 键值对的 Value 的数据类型
3、原子操作,Redis 的所有操作都是原子性的
这使得基于 Redis 实现分布式锁非常简单
4、支持发布/订阅功能,数据过期功能

启动 Redis 服务:

mcdx@ubuntu:~$ sudo service redis-server start

启动客户端:

mcdx@ubuntu:~$ redis-cli
127.0.0.1:6379> 

查看全部数据的 Key 值:

127.0.0.1:6379> keys *   # 这三个是本来就有的,之前存的数据
1) "douban_movie:items"
2) "a"
3) "flask_doc:items"
127.0.0.1:6379> exists a  # 判断 Key 是否存在
(integer) 1
127.0.0.1:6379> exists test
(integer) 0
127.0.0.1:6379> set haha ok
OK
127.0.0.1:6379> exists haha
(integer) 1
127.0.0.1:6379> del haha  # 删除 Key 值,也就删除了这条数据
(integer) 1
127.0.0.1:6379> exists haha
(integer) 0

设置 Key 的过期时间,过期以后 Key 将被自动删除:

127.0.0.1:6379> expire a 22
(integer) 1
127.0.0.1:6379> ttl a  # 查看 Key 的剩余生存时间
(integer) 20
127.0.0.1:6379> ttl a
(integer) 15
127.0.0.1:6379> ttl a
(integer) 9
127.0.0.1:6379> ttl a
(integer) -2
127.0.0.1:6379> exists a
(integer) 0

数据类型 - 字符串:

127.0.0.1:6379> set shiyanlou hello  # 用 set 方法添加的 Value 就是字符串
OK
127.0.0.1:6379> type shiyanlou
string
127.0.0.1:6379> get shiyanlou
"hello"

数据类型 - 哈希 / 字典:

127.0.0.1:6379> hset haxi name Tom 创建哈希类型的数据
(integer) 1
127.0.0.1:6379> type haxi  # 查看类型
hash
127.0.0.1:6379> hmset haxi age 11 email haxi@haha.com  # 一次添加多个
OK
127.0.0.1:6379> hgetall haxi  # 获得全部键值
1) "name"
2) "Tom"
3) "age"
4) "11"
5) "email"
6) "haxi@haha.com"
127.0.0.1:6379> hkeys haxi  # 获得全部键
1) "name"
2) "age"
3) "email"
127.0.0.1:6379> hget haxi email  # 获得某个键的值
"haxi@haha.com"
127.0.0.1:6379> hlen haxi  # 查看键值对的数量
(integer) 3

数据类型 - 列表:

127.0.0.1:6379> lpush liebiao one two three
(integer) 3
127.0.0.1:6379> type liebiao  # 查看数据类型
list
127.0.0.1:6379> lrange liebiao 0 -1  # 打印全部元素
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> llen liebiao  # 列表长度
(integer) 3

数据类型 - 集合:

127.0.0.1:6379> sadd jihe James Kobe Wall Wade Bosh  # 创建集合
(integer) 5
127.0.0.1:6379> smembers jihe  # 查看集合内全部成员
1) "Kobe"
2) "Wade"
3) "Wall"
4) "James"
5) "Bosh"
127.0.0.1:6379> scard jihe  # 集合内成员数量
(integer) 5
127.0.0.1:6379> srem jihe Kobe  # 删除某个成员
(integer) 1
127.0.0.1:6379> smembers jihe
1) "Wade"
2) "Wall"
3) "James"
4) "Bosh"
127.0.0.1:6379> spop jihe  # 随机删除某个成员并返回
"James"
127.0.0.1:6379> smembers jihe
1) "Wade"
2) "Bosh"
3) "Wall"

数据类型 - 有序集合:

# 创建有序集合
127.0.0.1:6379> zadd youxu 10 Nash 20 Durant 30 Curry 40 Irving 
(integer) 4
127.0.0.1:6379> zcard youxu  # 查看成员数量
(integer) 4
127.0.0.1:6379> zcount youxu 11 33  # 查看分数区间内成员数量,左闭右闭
(integer) 2
# 查看某成员的排名,按分数从小到大排,从 0 开始算
127.0.0.1:6379> zrank youxu Durant  
(integer) 1
127.0.0.1:6379> zrevrank youxu Durant  # 查看某成员的排名,从大到小排
(integer) 2
127.0.0.1:6379> zrem youxu Durant  # 删除某成员
(integer) 1
127.0.0.1:6379> zscore youxu Durant  # 查看某成员的分数
(nil)
127.0.0.1:6379> zscore youxu Irving
"40"
上一篇 下一篇

猜你喜欢

热点阅读