redis基本操作
-
redis安装简单说明
cd redis-3.0.0
make
cd src
make install
mkdir -p /usr/local/redis/bin/ /usr/local/redis/etc #把所有命令移动到bin,把配置文件移动到etc下
-
redis介绍
键值存储,它是数据结构服务器:字符串string,hash,链表list,集合set和有序集合zset。支持push,pop和add,remove。为了保证效率,都是存储在内存中。周期性把数据更新到磁盘中,或者记录到log里面,类似于mysql的binlog。
-
redis适用场合
1: 应用程序直接redis数据库。应用程序直接向redis读写操作。
2: 应用程序直接访问redis,如果失败,访问mysql。redis的数据和mysql数据进行同步。
适用操作:
1: 取最新的N个数据
2: 排行榜应用top n
3: 精确设置过期时间的应用、针对键来设置过期
4: 计数器
5: uniq操作
6: pub/sub构建实时消息
7: 队列系统
8: 缓存
-
redis String操作
String是redis最简单的数据类型,可以存放图像(二进制)和对象(序列化)。下面是一些string的操作:
set name helloworld #设置name键
get name #获取name值
mset key1 test1 key2 test2 #设置多个值
strlen name #查看长度
-
redis hash操作
hset user:001 name helloworld #设置user:001的name字段
hget user:001 name #获取user:001的name值
hmset user:002 name helloworld age 20 #批量设置
hmget user:002 name age #批量获取
hkeys user:002 #获取user:002的所有键
hvals user:002 #获取user:002的所有值
hgetall user:002 #获取user:002的所有键值
-
redis list(双向链表)
lpush list1 hello #从list1头压入hello
lpush list1 world #从list1头压入world
lrange list1 0 -1 #取出list1的,先取出world 再取出hello。栈
rpush list2 hello #从list2尾压入hello
rpush list2 world #从list2尾压入world
lrange list2 0 -1 #取出list2,先hello, 后world。队列
llen list2 #返回链表中的元素。
-
redis set(无序集合)
sadd set2 one #向集合set2添加one
smembers set2 #查看集合set2里面的元素
scard set3 #返回set3中有几个元素
-
redis zset(有序集合)
zadd zset1 1 one #向zset1添加one,顺序号为1
zrange zset1 0 -1 withscores #查看zset3中的值和顺序号
zcard zset3 #返回zset3元素的个数
-
redis日常操作命令
select 1 #选择数据库,默认是0
keys * #
keys * #取出所有key
keys my* #模糊匹配
quit exit #退出客户端
dbsize #返回key的数量 select 0, 1, 15试下
info #查看redis信息
config get * #获取配置的设置
flushdb #清空当前数据库
flushall #清空所有数据库
-
redis密码设置
配置文件:requirepass helloworld 添加这个配置项
怎么验证密码: redis-cli -a helloworld ,或者先用redis-cli登录后再auth helloworld验证。
从服务器怎么设置主服务器的密码验证:masterauth helloworld
-
slave主从配置
一个master可以拥有多个slave,多个slave跟master都相连。重要:slave也可以跟slave相连。
主从复制master将数据库快照并发送给slave。
从服务器的配置:
slaveof 172.16.0.4 6379
masterauth helloworld #如果需要配置密码,则配置masterauth
info可以查一下主从复制信息
-
redis的事务
multi #进入事务的上下文
set age 10 #会放到队列里面
set age 20 #还会放队列
exec #然后执行事务
discard #不执行事务,事务回滚
-
redis持久化
1: snapshotting(快照,将数据存在文件里面) 默认方式,二进制方式
2: append-only(将操作存在文件里面)
数据持久化:n秒内如果有m个key修改,则保存。
save 900 1 #如果在900s有1个key被修改,则保存
save 300 10 #如果300s内有10key被修改,则保存
save 60 10000 #如果60s内有10000个key被修改,则保存
操作持久化:每次操作都写到文件中。重启时候,重新执行一次aof文件即可。由于系统还可能存在缓存。
appendonly yes #启用操作持久化
appendfsync always #每次都写
appendfsync everysec #每1s
appendfsync no #随着系统
-
redis订阅与发布
SUBSCRIBE tv1 tv2 #定阅tv1 tv2频道
publish tv1 test #向tv1发送数据