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)。Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
下载官方文件之后,安装即可。 在命令窗口输入命令
redis-cli
启动成功
找到redis的配置文件
注释bind 127.0.0.1即可实现远程连接访问
#输入命令
make
#完毕之后在当前窗口输入新的命令
sudo make install
把daemonize 改为yes即可实现在后台运行
#启动redis服务
./redis-server redis.conf
#查看redis服务进程 是否启动成功
ps -ef | grep redis
ps -A | grep redis
#redis客户端启动
redis-cli
#关闭redis服务
ps -A | grep redis
set key value :给一个key赋值value setex key seconds value:给一个key设置值value,过期时间seconds mset key value [key value]:设置多个键值对 get key:根据key获取一个值 mget key [key]:根据多个key获取多个值 incr key :将key对应的值+1 incrby key increment:将key对应的值+increment decr key:将key对应的值-1 decrby key increment:将key对应的值-increment append key value:将value的值拼接到x后面 strlen key:获取key对应的值的长度
keys pattern:查找键,支持正则 exists key:查找键是否存在,存在返回1,否则返回0 type key:查看键对应的值的类型 del key:根据key删除键值对 expire key seconds:给key设置过期时间 ttl key:查看键的有效时间(显示结果为-2 的话表示过期,-1表示永不过期)
hset key field value:设置单个属性 hmset key field value [field value]:设置多个属性 hget key field :获取key对应的值 hmget key field [field]:获取多个key对应的value值 hgetall key:获取所有属性和值 hkeys key:获取所有的属性 hlen key:获取包含属性的个数 hvals key:获取所有的值 hexists key field:判断属性是否存在 hdel key field [field]:根据属性名称删除属性及值 hstrlen key field:返回值的字符串长度
lpush key value [value]:列表头部增加多个数据 rpush key value [value]:列表尾部增加多个数据 linsert key before | after privot value:在一个元素钱/后插入数据 lset key index value:设置指定索引的元素的值 lpop key:删除并且获取key对应的list第一个元素 rpop key:删除并且获取key对应的list最后一个元素 lrange key start stop:返回存在在key的list中指定范围的数据 llen key:获取列表的长度 lindex key index:获取列表中索引对应的元素 ltrim key start stop:获取列表中start~stop组成的新的列表
sadd key value [value]:添加多个数据到key集合中 smembers key:获取key集合中所有的数据 sismember key value:判断value是否在key集合中存在 scard key:获取key集合中元素的个数 sinter key [key]:获取多个集合 交集 sdiff key [key]:获取多个集合的差集 sunion key [key]:获取多个集合的并集
zadd key score value [ score value]:添加多个带权重的数据到key集合中 zrange key start stop:获取指定范围中所有的元素 zcard key:返回元素的个数 zcount key min max :返回score值在min和max之间的数据 zscore key member:返回集合中member元素的score值
推送消息的格式包含三部分
subscribe 频道名称 [频道名称]:订阅多个频道
unsubscribe 频道名称 [频道名称]:取消多个频道的订阅
publish 频道 消息:向指定的频道推送消息
输入命令: #启动redis redis-cli #选择数据库 select 0 #订阅频道 subscribe zhiji
输入命令 #启动redis redis-cli #选择数据库 select 1 #发布消息 publish zhiji 'hellow'
效果如图所示
通过redis.**.conf配置完成主从双备
bind配置主数据库服务器
slaveof配置从数据库服务器
bind 192.168.1.11 slaveof 192.168.1.10 6379 在master和slave分别执行info命令,查看输出信息
在master上写数据
set hello world 在slave上读数据
get hello