redis简介
redis 一款高性能key-value数据库,实际上多用作缓存队列或者消息分发(celery),但是最常常被用来做缓存。
redis安装
源码安装
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make
命令安装
$sudo apt-get update
$sudo apt-get install redis-server
#brew install redis
redis配置
常用配置项
daemonize no #是否已守护进程方式运行,yes是的,no不是,默认不是
pidfile /var/run/redis.pid 当守护进程模式运行时,redis会把pid写入pid文件
port 6379
bind 127.0.0.1
timeout 300
loglevel verbose #日志级别,默认为verbose,其他有debug、notice、warning
logfile stdout #日志输出方式,当守护进程模式运行时,输出到/dev/null
database 16 #数据库个数,默认16个
save 900 1 #900秒内有一次变更则同步数据到同步文件
dbfilename dump.rdb本 #地数据库名字,默认dump.rdb
dir ./ #指定本地数据库存放目录
salveof 1.1.1.1 30 #主从双机或者多机收,配置从方指定主方的地址和端口
masterauth 配置主方密码
requirepass xxxxxx #配置需要密码访问,xxxxxx是配置的密码
maxclients 128
maxmemory 1000000 #单位Bytes
appendonly no #指定是否更新操作后尽心日志记录,redis会默认的把异步数据写入磁盘,如果不开启该选项,可能导致掉电、时候一小段时间内的数据损失(数据永久化的一种方式)
appendfilename appendonly.aof #配置更新日志文件名
appendfsync everysec/always/no #配置更新日志记录,no表示等OS进行数据缓存到磁盘,everysec比奥斯每秒一次,always表示每次更新后手动调用fsync()写入数据到磁盘
redis数据类型
字符串
redis 127.0.0.1:6379> SET name "runoob"
OK
redis 127.0.0.1:6379> GET name
"runoob"
哈希
redis> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"
列表
redis 127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>
集合
String的无序集合
redis 127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob
1) "redis"
2) "rabitmq"
3) "mongodb"
有序集合
redis 127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> > ZRANGEBYSCORE runoob 0 1000
1) "mongodb"
2) "rabitmq"
3) "redis"
redis客户端使用
redis-cli -h 127.0.0.1 -p 6379 -a ‘QWERasdf1234‘
键值(KEY)
SET xxxx yyyy #xxxx就是key
DEL xxxx
DUMP xxxx
EXISTS xxxx
EXPIRE xxxx seconds
MOVE xxxx db(数字)
RANDOMKEY #随机返回一个key
RENAME xxxxx xxxxxxxxx #重命名key
TYPE xxxx 返回键值所存储的值的类型
字符串
SET key value
GET
GETRANCE key start end
STRLEN #返回key存储的字符串长度
哈希
HMSET
HSET
HGET
HDEL
HEXISTS
HKEYS key
HMSET q field1 value1 field2 value2
列表
BLPOP
BRPOP
BRPOLPPUSH
LPOP
LPUSH
LRANGE
LREM
...
集合和有序集合
SADD key value
SCARD key 集合的成员数
SREM
SRANGE
ZADD
ZREM
ZRANGE
redis的用作缓存或消息队列
PUBLISH channel message #发布消息
PSUBSCRIBE pattern #订阅一个或多个给定模式的频道
SUBSCRIBE #订阅一个或多个频道的信息
UNSUBSCRIBE #退订频道
redis的事务机制
每一条命令都是原子性的,每个事务集合不是原子性的。
事务集合
MULTI
SET A A
SET B B
...
EXEC
事务命令
DISCARD取消事务
MULTI+EXEC 开始和执行
WATCH key 监控key
UNWATCH 取消WATCH对所有可以的监控
redis连接测试
redis-cli
auth xxxxxx 密码认证
PING 测试服务运行与否,运行回PONG
QUIT
SELECT X 切换数据库
服务器与备份
INFO 查看服务器与备份
CLIENT LIST 列出客户端
TIME 获取当下时间
FLUSHALL/FLUSHDB 删除所有/当前数据库所有key
MONITOR调试用
SAVE 保存
原文地址:https://www.cnblogs.com/KevinGeorge/p/9185128.html
时间: 2024-10-07 06:45:20