概述&安装
Redis是一个基于内存的Key-Value高性能数据库。其只要特点:
- Redis是基于内存的,所以性能极高,它能读的速度是110000次/s,写的的速度是81000次/s
- 丰富的数据类型,支持Strings, Lists, Hashes, Sets, Ordered Sets数据结构
- 支持持久化,RDB和AOF
- 支持master-slave数据备份
- Redis所有操作都是原子性的
- 还支持很多特性,如publish/subsribe,通知,key过期等
使用场景:
- 缓存,对于读取频率很高的数据,使用缓存
- 时效性的数据
- 计数器,如点赞、应用数、资源数
- 社交列表,如用户点赞表,用户收藏表,用户关注列表
- 排行
- 交集,并集,差集
- 消息队列
- 单线程可以作为分布式锁
安装
# ubuntu安装
$ sudo apt-get install redis-server
$ redis-server # 启动
$ redis-cli # 命令行客户端
$ redis 127.0.0.1:6379> ping # 查看是否启动
$ PONG
$ > shutdown
配置
基本命令
# string
$ reids-cli -h 127.0.0.1 -p 6379 -a password
$ > auth password
$ select 3
$ keys *
$ scan 0 match * count 10000
$ scan 0 match video:* count 10000
# string
$ SET name 'wcg' # OK
$ GET name # 'wcg'
$ set name '1' # OK
$ incr name # (integer) 3 自动将字符串转为数值
# list 底层是链表
$ lpush mylist '1' # (integer) 1 返回元素个数
$ rpush mylist '2'
$ lrange mylist 0 1 # 1, 2
$ lrange mylist 0 -1
# set
$ sadd myset 'one' # (integer) 1
$ sadd myset 'two'
$ smembers myset # 'one' 'two' 列出所有元素
$ sismember myset 'one' # 判断是否存在,1, 0
$ sumion myset yourset # 对两个集合求并集
# zset
$ zadd myzset 1 apple # (integer) 1
$ zadd myzset 2 banana # (integer) 1
$ zrange myzset 0 -1 # 'apple', 'banana'
$ zrange myzset 0 -1 withscores # 'apple' '1' 'banana' '2'
# hash
$ HMSET user:001 username username wcg password 123 age 24 # OK
$ HGETALL user:001
$ HSET user:001 password 12345
# 发布订阅
$ SUBSCRIBE redisChat
# 另一个终端,发布信息
$ PUBLISH redisChat "wcg is a good man."
# 事务 MULTI, EXEC, DISCARD, WATCH
$ MULTI #标记事务开始
$ ... #一系列命令
$ EXEC #执行
# 数据备份
$ SAVE # dump.rdb
参考
https://code.ziqiangxuetang.com/redis/redis-intro.html
https://my.oschina.net/javagg/blog/471433