what
Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统, 它可以用作数据库、缓存和消息中间件。拥有丰富的支持主流语言的 客户端,C、C++、Python、Erlang、R、C#、Java、PHP、Objective- C、Perl、Ruby、Scala、Go、JavaScript。
数据结构丰富
Redis 虽然也是键值对数据库,但是和 Memcached 不同的是, Redis 支持多种类型的数据结构,不仅可以是字符串,同时还提供散 列(hashes),列表(lists),集合(sets),有序集合(sorted sets) 等数据结
官网
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
tar -zxvf redis-3.2.3.tar.gz
mv redis-3.2.3 redis
cd redis
yum install gcc tcl
make test
make MALLOC=libc && make install
cd utils/
./install_server.sh
安装配置
配置自启动
cp /opt/redis-3.2.3/utils/redis_init_script /etc/init.d/redisd
在启动脚本开头添加如下两行注释以修改其运行级别:
1
2
3
4
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#
命令
- 设置为开机自启动服务器
chkconfig redisd on
- 打开服务
service redisd start
- 关闭服务
service redisd stop
- /usr/sbin/redis-server /etc/redis.conf
使用
进入命令行 rediscli
命令使用
- 切换数据库
- key操作
- KEYS pattern
- EXISTS key
- EXPIRE key seconds
- MOVE key db
- TTL key
- TYPE key
- string操作
- SET key value [EX seconds] [PX milliseconds] [NX|XX]
- EX 设置过期时间,秒,等同于 SETEX key seconds value
- PX 设置过期时间,毫秒,等同于 PSETEX key milliseconds value
- NX 键不存在,才能设置,等同于 SETNX key value
- XX 键存在时,才能设置
- GET key
- APPEND key value
- STRLEN key
- INCR key
- INCRBY key increment
- DECR key
- DECRBY key decrement
- GETRANGE key start end
- SETRANGE key offset value
- SETEX key seconds value
- SETNX key value
- MGET key [key ...]
- MSET key value [key value ...]
- MSETNX key value [key value ...]
- SET key value [EX seconds] [PX milliseconds] [NX|XX]
- list 操作
- LPUSH key value [value ...]
- RPUSH key value [value ...]
- LRANGE key start stop
- LPOP key
- RPOP key
- LINDEX key index
- LLEN key
- LREM key count value
- LTRIM key start stop
- RPOPLPUSH source destination
- LSET key index value
- LINSERT key BEFORE|AFTER pivot value
- SET操作
- SAD 增加集合
sadd myset xixi haha
- SREM 删除
- SPOP 无序弹出集合,适用无放回抽奖
- SMEMBERS 列出集合内容
- smove 移动
- sdiff 求差集
- sinter 求交集,微博共同关注
- sunion 并集
- SISMEMBER key member
- SCARD key
- SAD 增加集合
- sorted set 操作
- zadd 增加有序集合 sorted set,使用排行榜场景
- zrange 返回有序集key中,指定区间内成员 升序
- zrevrange 按分数递减
- zincrby 增加分数
- zrem 指定删除某个元素
- zremrangebyscore 按分数范围删除
- zscore
- zcard
- zrank
- hash散列操作
- hget
- hgetall
- hkeys
- hvals
- hmset
- hsetnx
- hincrby
持久化
- rdb 快照
- 关闭redis-cli ->
CONFIG SET save ""
- 手动触发redis-cli->
SAVE
- 清空
FLUSHALL
- 关闭redis-cli ->
- aof
保留操作日志,两个都开启,优先使用这个
appendfsyc always
每条持久化appendfsyc everysec
每秒持久化appendfsnc no
操作系统自处理- 优缺点 命令去掉用避免被全干掉
- auto-aof
主从复制
- 从服务器配置 slaveof 192.168.1.1 6379
哨兵机制 redis-sentinel
redis集群
参考
- https://mp.weixin.qq.com/s/TR8oe7c1SlOrk78untXdOA