redis 数据库
一、配置
我的log日志:/var/log/redis
我的redis服务端的启动: sudo redis-server /etc/redis/redis.conf
停止redis服务
ps ajx|grep redis
sudo kill -9 redis的进程id
客户端启动:redis-cli
数据文件存储路径:/var/lib/redis
二、value的数据类型:
1.string
set key value [ex seconds]
nx :不存在则创建key
xx: 存在则创建
get key 根据key得到values值
setnx 不存在则创建key
setex 设置过期时间
批量设置和取值:
mset :设置多个键值对
mget :得到多个键值
修改:
set count 99 -- 进行覆盖
设置新值取回旧值
getset key new_value
增加 incr key -----+1
减少 decr key ------ -1
incrby key 5 ---- +5 指定值增加
decrby key 5 ------ -5 减少
类似切片操作
getrange key start end []
setrange key 5 ab 在5那进行插入
字符串长度:
strlen key
2.hash
key:可以绑定一些关联性较强的数据
user:{name:'',password:'',addr:'',phone:''}
设置:
hset key field value
hget key field 只能获取指定field的值
hmset key field value field value ...
hmget key field field ...
hgetall key -- 获取全部
hkeys key ----- dict.keys()
hvals key ------dict.values()
删除:hdel key field
获取个数:
hlen key
hexists key field
3.list
lpush key value -默认放到首部
rpush key value 尾部
llen key -长度
lrange key start stop 获取列表内容
lpushx key value 存在则往列表中添加
在一个元素的前|后插入新元素
linsert key BEFORE|AFTER pivot value
lset key index new_value
lrem key count value -- count表示个数
list是允许重复,就会有多个相同值,通过count指定个数
lpop key -- 删除列表的第一个最上面的元素
根据索引获取列表内元素
lindex key index
4、set
类似 python set{'admin','gao',...}
添加:
sadd key members
获取:
smembers key
scard key 获取长度
交集:
sinter key1 key2...
差集:
sdiff key1 key2...
合集:
sunion key1 key2...
sismember key member -- 判断member是否是key中成员
smove key1 key2 member ----移动赋值
spop key ----随机删除元素
srem key member ---指定元素删除
5、zset
有序集合,在集合的基础上,为元素排序;元素的排序需要根据另外一个值来进行比较。所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来排序
添加:zadd key [nx|xx] score member...
nx--没有就创建
xx--存在就修改
查看:
zrange key start stop... 从小到大
zrevrange key start stop... 从大到小
zadd key xx incr 1 james ---如果存在则在原来的基础上增加1
返回元素个数:
zcard key
zcount key min max 指定范围之间的个数
zscore key member 查看member的score值
zrangebyscore z2 (100 -inf withscores 比100大的元素
zrevrangebyscore z2 (200 -inf withscores 小于200以下的
删除:
zrem key member 删除指定member的元素
zremrangebyscore key min max 根据score的范围实现删除
运算:
交集:
zinterstore new_key 2 key1 key2
合集:
zunionstore new_key 2 key1 key2 数字2指的是2个key求合集
flushdb 清空当前库所有的key、
flushall 清空所有的库
三、备份
save config get dir /var/lib/redis SAVE和BGSAVE命令的区别在于:SAVE命令是阻塞主进程,save操作完成之后,主进程才开始工作,客户端可以连接;BGSAVE命令是fork一个专门save的子进程,此操作不会影响主进程。
恢复:把dump.rdb放到启动redis的目录下,重启redis即可恢复数据。
主从复制