淘先锋技术网

首页 1 2 3 4 5 6 7

一.Redis入门

  • Redis是一款基于键值对的NoSQL(关系型数据库之外的数据库的统称Not Only SQL)数据库,它的值支持多种数据结构。<key,value>
    value类型:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。
  • Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。
    同时,Redis还可以将内存中的数据以快照或日志的形式保存到硬盘上,以保证数据的安全性。
  • 快照:bin的形式;直接保存到硬盘中;但存在阻塞的情况。
  • 日志:AOF(Append only file),每执行一个命令就存储下来;实时追加;在从硬盘向内存中恢复较慢,要重新执行。
  • Redis典型的应用场景包括:短时间内访问频繁的情况。
    • 缓存、排行榜、
    • 计数器:帖子浏览量
    • 社交网络:点赞、关注
    • 消息队列:可满足消息队列的基本需求,但不是专业的
  • 核心使用:见其官网Commands
  • https://redis.io https://github.com/microsoftarchive/redis

基本命令

进入客户端:

redis-cli

内置了16个库,分别为0-15,切换方法为:(默认为0库)

select 1

清空库:

flushdb
String类型:
set test:count 1

Redis提倡两个单词之间以:连接

自增、自减:

incr test:count 
decr test:count
哈希HashSet
hset test:user id 1
创建HashSet test:user集合,向里面添加键值对<id,1>

hset test:user username zhangsan

取值:
hget test:user id
List:

横向的容器,支持头插(左插)、尾插(右插),头取,尾取。

可以模拟:队列、栈。

从左侧存入
lpush test:ids 101 102 103 
内存: 103 102 101

list的长度
llen test:ids

取列表中的第二个元素
lindex test:ids 2

取list中[0-2]的元素
1range test:ids 0 2

右侧弹出一个元素
rpop test:ids
集合:

无序、无重复元素

加入到集合中
sadd test:teachers aaa bbb ccc ddd eee 

查看元素个数
scard test:teachers 

随机弹出一个元素,用于抽奖
spop test:teachers 

查看集合中所有元素
smembers test:teachers 
有序集合

给每一个元素附加了 分数,按照分数从小到大排序(第0,第1)

创建有序集合test:students 其中aaa元素的分数为10(第0名,由小到大排序)
zadd test:students 10 aaa 20 bbb 30 ccc 40 ddd 50 eee

元素个数
zcard test:students 

查看分数
zscore test:students ccc 

查看排名
zrank test:students ccc 

分数排序为【0-2】的
zrange test:students 0 2 
全局命令
查看所有的键
keys *

查看所有以test开头的键
keys test* 

查看类型
type test:user 

判断test:user是否存在
exists test:user 

删除元素
del test:user 

此元素10s后过期,用于验证码过期之类的
expire test:students 10