redis 数据库

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即可恢复数据。

主从复制

一路独行,遇见最好的自己!!!
原文地址:https://www.cnblogs.com/rungang/p/11518511.html