redis 的读写效率很高
redis:数据库(key:value) 键值存储
redis : 是非关系型数据库,是一个基于key - values(键-值)的存储,
redis 存储的都是键和值的类型(存的是一个字典的对象)
数据存储在缓存中,读取效率高,
打开百度搜素 redis ---> 中文版
redis 安装
1.下载:打开redis官方网站,推荐下载稳定版本(stable)
2.解压
3.进入到解压的文件夹目录
生成: sudo make
测试: sudo make test
将redis的命令安装到指定的目录: sudo make install
1.启动:进入到redis 的文件夹下 ,执行 : redis-server redis.conf
2.启动:(1.) redis-server (2.) redis-cli
退出redis ctil + c,exit,sudo service redis stop
(1.)关于 redis 的字符串操作(二进制数据,最大限制512MB)
设置键值: set key(键) values(值) 例如: set name huahua
查看键值: get key(键), 获取:根据键获取值,如果不存在此键则返回nil
如果要显示中文再开一个终端输入:redis-cli --raw ----> get name
设置过0期时间: setex key seconds(秒数) values(值,在有效时间内,可以是任意) 例如:setex name 10 huahua
替换: setrange key(键) offset(偏移量,从哪个位置开始替换) newvalues
例如: setrange name 2 kkk
判断key是否存在,不存在则创建: setnx key(键) value(值) 例如:setne name xigua
设置多个键值: mset key1 value1 key2 value2 ... 例如:mset name huahua age 17 book pytho
根据多个键获取多个值 : mget key1 key2 ... 例如:mget name age book
追加值(在末尾追加): append key value 例如:append name nihao
删除: del key
查看字符串的长度:strlen key
(2.)values(值)值得操作
例如:set int 10
在10的基础上减一个 decr int
(3.)键的操作
查看所有键:keys *
查看名称中包含a的键:keys 'a*' (正则,查看我们想要的key)
判断键是否存在 如果存在返回1,不存在返回0 :exists key1
随机返回一个key(从当前数据库中随机返回一个 key) : randomkey
查看键对应的value的类型 : type key
删除键及对应的值:del key1 key2 ...
给一个kay设置过期时间,以秒为单位(如果没有指定过期时间则⼀直存在,直到使⽤DEL移除):expire key seconds
查看有效时间,以秒为单位:ttl key (查看过期时间)
查看键'bb'的有效时间:ttl bb
给一个key重新命名:rename key newkey
删除key:del key
(4.)hash类型
hash⽤于存储对象,对象的结构为属性、值 值的类型为string
field(域,相当于字典里面的key键)
设置单个属性: hset key field value
获取⼀个属性的值:hget key field (获取域下面的值)
设置多个键和属性: hmset key field values fiels valuse....
获取多个属性的值: hmget key field field..... (获取域下面的多个值)
删除整个hash键及值,使⽤del命令 删除属性,属性对应的值会被⼀起删除:hdel key field field field .....
获取所有的域: hkeys key
获取所有的值: hvals key
获取所有域和值: hgetall key
获取键的长度:hlen key
给hash数据类型中的域的数字的值增加指定的值(处理的是数字类型):hincrby key fiels 数字
判断键下是否存在某个域:hexists key field
查看域对应值的长度:hstrlen key field
(5.)list数据类型
从左面开始插入(先插的在后面):lpush key valuse values....
从右面开始插入(先插的在前面):rpush key valuse values....
查看数据(队列)所有的值:lrange key start(起始位置,从0开始) end(结束-1) 例如: lrange lkey 0 -1
根据索引查找(取值):lindex key index
重新赋值:lset key index value
指定位置插入值:linsert key before|after value(给定一个值作为参照位置) newvalue
从左面取出,取出后即删除:lpop key
从右面取出,取出后即删除:rpop key
查看队列的长度:llen key
截取:ltrim key start stop 例如:ltrim key 2 5 ---->5 4 3 2
阻塞时间,(为0则一直阻塞,知道key对应的list有值,不为0,在设置的时间内,即使取不到值,也结束):brpop key key1 second
阻塞时间(同上):blpop
brpoplpush key key2 timeout (丛key右边取出值,丛左面取的值放在key里面)
redis的发布与订阅
订阅一个频道:subscribe channel(频道名称) ...
发布消息:publish channel(频道) message(消息)
取消订阅:unsubscribe channel(频道名称)
事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
事物的特性:原子性,一致性,隔离性,持久性
开启一个事务:multi
提交一个事务:exec
取消事务:discard
监听事务:watch
取消监听:unwatch
备份:save 使用这个命令之后,会保存一个dump.rdb
主从备份(一主一从,一主多从):
1).配置要有一个主节点 :进入redis.conf 修改bind 为主节ip
保存退出,从新开启redis服务
启动redis-cli 链接主节点(redis服务)
2).配置从节点:
进入redis.conf 修改bind 为主机ip
可以修改端口号
设置主节点信息(282行)
保存退出,重新开启redis服务
启动redis-cli -h 从节点的ip -p 从节点的port 连接从节点(redis服务)可以实现主从备份
安全:
查看密码:config get requirepass
设置:congig set requirepass ‘密码’
认证:auth 密码
取消密码:congig set requirepass ''
网友评论