redis 简介
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
你可以对这些类型执行 原子操作 , 列如: 字符串(strings)的append 命令; 散列(hashes)的hincrby命令; 列表(lists)的lpush命令; 集合(sets)计算交集sinter命令, 计算并集union命令 和 计算差集sdiff命令; 或者 在有序集合(sorted sets)里面获取成员的最高排名zrangebyscore命令.
为了实现其卓越的性能, Redis 采用运行在 内存中的数据集工作方式. 根据您的使用情况, 您可以每隔一定时间将 数据集导出到磁盘 , 或者 追加到命令日志中. 您也可以关闭持久化功能,将Redis作为一个高效的网络的缓存数据功能使用.
Redis 同样支持 主从复制(能自动重连和网络断开时自动重新同步),并且第一次同步是快速的非阻塞试的同步.
其他功能包括:
- 事务(Transactions)
- 订阅分发(Pub/Sub)
- LUA脚本(Lua scripting)
- 过期自动删除key
- 内存回收
- 自动故障转移
常用命令
查看当前所有的key
1
KEYS *
查看当前redis的配置信息
1
CONFIG GET *
redis没有MySQL中show dbs
的命令.Redis database的数据是固定的,在配置文件中设置.默认是16.每个database有一个数字标识,没有名字.
reids日志位置
logfile 日志记录方式,默认值为stdout,如果设置为stdout且以守护进程方式运行,那么日志会被重定向到/dev/null,也就是不记日志。redis修改持久化路径和日志路径
vim redis.conf
logfile /data/redis_cache/logs/redis.log #日志路径
dir /data/redis_cache #持久化路径,修改后 记得要把dump.rdb持久化文件拷贝到/data/redis_cache下
先杀掉redis,拷贝dump.rdb,启动清redis缓存
1
2
3
4./redis-cli #进入
dbsize
flushall #执行
exit删除redis当前数据库中的所有Key
1
flushdb
删除redis所有数据库中的key
1
flushall
建立键值对
1
set bar 1
判断键是否存在
1
exists bar
删除键
1
del bar
获得键值的数据类型
1
type foo
string, hash, list, set, zset
获得键对应的值
1
get foo
自增
1
incr foo
增加特定数值1
incrby foo 3
类似的自减用decr
和decrby
增加指定浮点数incrbyfloat
- 向尾部追加值
1
append bar hello
要追加带空格的内容,用空格引起来
获得字符串的长度
1
strlen bar
同时设置多个键值对
1
mset key1 value1 key2 value2 key3 value3
同时获得多个键值对内容1
mget key1 key2
- 赋值和取值
1
2
3
4hset key field value
hget key field
hmset key field1 value1 field2 value2
hmget key field1 field2
redis-cli连接服务器后,使用info命令查看Redis信息和状态:1
info
批量删除1
redis-cli KEYS "pattern" | xargs redis-cli DEL
1 | redis-cli -h 192.168.10.29 -p 6380de keys twenty* | xargs redis-cli -h 192.168.10.29 -p 6380de del |