在redis.conf中将daemonize no的no改为yes,就将redis设置为后台持续运行
ps -ef|grep redis,查看redis的进程是否开启
./redis-server 配置文件名,通过指定的配置文件启动服务(./redis-server …/redis.conf)
./redis-cli -p 6379,客户端通过6379端口连接redis服务器
ping,如果出现PONG则表示redis服务启动并且连接成功
shutdown,关闭redis
exit,退出
Redis有16个数据库,默认使用第0个数据库
select 3,使用第三个数据库
dbsize,查看db大小
flushdb,清空当前数据库
flushall,清空所有数据库
keys *,查看当前数据库所有的key
set name handsome,给设置name设置值
get name,获取name的值
exists name,判断当前的key是否存在
move name 1,移除name这个key值,1代表当前数据库
expire name 10,设置name十秒后过期
ttl name,查看剩余时间
type name,查看name的类型
一.String(字符串)
set name handsome
get name
append name wuhu,向name的值追加字符串,如果name不存在就新建一个name
strlen name,获取name值的长度
set views 0
incr views,让views加1
decr views,让views减1
incrby views 10,让views加10
decrby views 10,让views减10
set name handsomewuhu
getrange name 0 7,截取出handsome(截取[0,3])
getrange name 0 -1,获取name的值,等价于get key
setrange name 8 qifei,替换指定位置开始的字符串
setex(set wiht expire),设置过期时间
setnx(set if not exist),不存在再设置,分布式中常常使用
mset,同时设置多个值
mget,同时获取多个值
msetnx,是一个原子性操作,要么一切成功,要么一切失败
getset,先get然后set,如果不存在值就返回nil,如果存在值就获取原来的值并设置新的值
二.List(列表)
lpush mylist one,向mylist的头部插入值
rpush mylist two,向mylist的尾部插入值
lrange mylist 0 -1,获取mylist全部的值
lpop mylist,移除列表的第一个元素
rpop mylist,移除列表的最后一个元素
lindex mylist 0,通过下标获取mylist中的某一个值
llen mylist,返回列表的长度
lrem mylist 1 one,移除mylist集合中指定个数的value,精确匹配
ltrim mylist 1 2,通过下标截取指定的长度,只剩下截取的元素
lset mylist 0 wuhu,将列表中指定下表的值替换为另一个值,更新操作
linsert mylist before one handsome,将handsome插在one的前面
linsert mylist after one wuhu,将wuhu插在one的前面
linsert,将某个具体的value插入到列表中某个元素的前面或后面
list实际上是一个链表,before node after,left和right都可以插入值
如果key不存在,创建新的链表
如果key存在,新增内容
如果移除了所有值,空链表,也代表不存在
消息队列(Lpush Rpop),栈(Lpush,Lpop)
三.Set(集合)
sadd myset handsome,set集合中添加元素
set为无序不重复集合,不能添加重复元素,否则会失败
smembers myset,查看myset中的所有值
sismember myset handsome,判断handsome是不是在myset集合中
srem myset handsome,移除set集合中的指定元素
srandmember myset,随机抽选出一个元素
srandmember myset 2,随机抽选出指定个数的的元素
spop myset,随机删除myset中的元素
smove myset handsome,移除集合中指定的值
四.Hash(哈希)
key-map,本质和String类型没有太大区别
hset myhash field handsome,set一个具体的key-value
hget myhash field,获取一个字段值
hmset myhash field1 hello field2 world,set多个key-value
hmget field1 field2,获取多个字段值
hgetall myhash,获取全部的数据
hdel myhash field1,删除hash指定key字段,对应的value也就被删除了
hlen myhash,获取hash表的字段数量
hexists myhash filed1,判断hash中指定字段是否存在
hkeys myhash,只获取所有的字段field
hvals myhash,只获取所有的值
五.Zset(有序集合)
zadd myset 1 one,添加一个值
zadd myset 2 two 3 three,添加多个值
zrange myset 0 -1,获取全部值
zrangebyscore myset -inf +inf,从负无穷到正无穷排序即从小到大排序
zrangebyscore myset -inf +inf withscores,附带参数查询
zrevrange myset 0 -1,从大到小进行排序
zrem myset one,移除有序集合中的指定元素
zcard myset,获取有序集合中的个数
zcount myset 1 3,获取指定区间的成员数量
配置文件对大小写不敏感
bind 127.0.0.1,绑定ip
protected-mode yes,开启保护模式
port 6379,端口号
daemonize yes,以守护进程的方式运行即以后台方式运行
pidfile /var/run/redis_6379.pid,以后台方式运行,需要指定一个pid文件
databases 16,数据库的数量,默认是16个数据库
requirepass,redis数据库密码,默认为空
config get requirepass,查看密码
config set requirepass 密码,设置密码
auth 密码,使用密码进行登录
rdb保存的文件是dump.rdb
save的规则满足的情况下,会自动触发rdb规则
执行flushall命令,也会触发rdb规则
退出redis,也会产生rdb文件
备份就会自动生成一个dump.rdb文件
连接状态下输入config get dir,/usr/local/bin如果这个目录下存在dump.rdb文件
redis启动时就会自动恢复其中的数据
aof保存的文件是appendonly.aof
使用aof保存数据,实际上是保存写的命令,重启时再执行一边这些命令
如果aof文件出错了,redis是连接不上的
redis-check-aof --fix appendonly.aof,修复aof文件
info replication,查看当前库的信息 slaveof host 6379.设置本机为6379的从机