Reids简单命令

  • Redis 是一款内存高速缓存数据库,它的数据模型为 key-value,使用缓存减轻数据库的负载。
  • 它支持的数据结构有 String list hash set sored set。
  • Redis 可以做持久化操作,保证数据安全。
  • 缓存有两种类型:
    数据缓存 经常用在页面的数据中,页面缓存 经常用在 CMS 内存管理系统。

Key 操作
FLUSHALL 删除所有数据库的所有key
DEL key 删除存在的 key
EXISTS key 判断 key 是否存在
EXPIRE key seconds 为指定的 key 设置过期时间(秒)
TTL key 以秒为单位,返回指定 key 的剩余时间
PTTL key 以毫秒为单位,返回指定 key 的剩余时间
PERSIST key 移出 key 的过期时间, key 将持久化
MOVE key db 将当前数据库的 key 移动到制定的数据库 db 中
TYPE key 返回 key 所存储的值类型
RENAME key newkay 修改 key 的名称

String 类型操作

  • string 是 redis 最基本的类型.redis 的 string 可以包含任何数据,包括 jpg 图片或者序列化的对象,单个
    value 值最大上限 1G
  • String 操作
    SET key value 设置 key 的值
    GET key 获取指定 key 的值
    GETRANGE key start end 指定 key 的值 ,返回从 start 到 end 的字符
    GETSET key value 给 key 设置新值,会返回旧值
    MSET key1 value1 …..keyn valuen 设置多个 键值对
    MGET key … keyn 获取多个 key 的值
    STRLEN key 返回 key 所存储的字符串值长度
    SETEX key seconds value 设置 key 的生存时间

List链表数据类型

  • list 类型其实就是一个双向链表,通过 push,pop 操作从链表的头部或尾部添加删除元素
  • list 元素最大可以包含 2的32次方-1 个元素
  • 这使得 list 既可以作用栈,也可以用作队列
  • list 类型操作
    lpush key string 在 key(list的名称) 对应 list 的头部添加字符串元素 (新插入的位置是第一个,其他元素依次向后退)
    rpop key 删除 list 的尾部元素,并返回删除元素
    lrange key start end 返回 list 中从 start 到 end 及之间的元素,下标从0开始
    llen key 返回 list 的长度
    rpush key string key(list的名称) 对应 list 的尾部添加字符串元素
    lpop key 删除 list 的头部元素,并返回删除元素
    ltrim key start end 截取 list ,只保留从 start 到 end 的元素,其他删除

set 集合类型

  • set 是 string 类型的无序集合,之间的元素不能重复
  • set 元素最大可以包含 2的32次方-1 个元素
  • set 类型操作
    sadd key member 添加一个 string 元素到 key 对应的 set 集合中
    sinter key1 key2 …… keyn 返回指定 key 的交集 ( key 跟 key 之间相同的元素)
    sunion key1 key2 ….. keyn 返回指定 key 的并集 (显示所有 key 的元素,如果 key 跟 key 之间有相同的元素,那么这个元素只显示1次)
    sdiff key1 key2 返回 key1 的差集(不显示 key1 与 key2 相同的元素 ,显示 key1 与 key2 不相同的元素),返回哪个 key 的元素,要看排序顺序.这里显示 key1
    smembers key 返回 key 中所有元素,是无序的
    sismember key member 判断 member(元素)是否在 set 中
    scard key 返回 set 的元素个数
    smove key1 key2 member 从 key1 对应 set 中把 member(元素)转移到 key2 对应的 set 中
    srem key member 删除 set 中 member(元素)

Sort Set 排序集合类型

  • Sort Set 是 string 类型的集合,之间的元素不能重复
  • 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的元素进行从 小到大的排序。
  • 有序集合的元素是唯一的,但分数(score)却可以重复。
  • Sort Set 操作
    zadd key score member 添加 score 元素,以 member 作为 ID 插入到集合中
    zrange key start end 返回指定区间的元素,按照元素的大小有序排列 (从小到大)。 0 -1 是查询全部
    zrevrange key start end 返回指定区间的元素,按照元素的大小进行逆序排列 (从大到小)
    zscore key member 返回 member 对应的元素
    zrank key member 返回 member 对应的下标
    zcard key 返回集合的元素总和
    zremrangebyrank key min max 删除排名在指定范围的元素(从小到大)
    zincrby key incr member 给 member 对应的元素,相加上 incr

持久化功能

  • redis 为了内部数据的安全考虑,会把本身的数据以文件的形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存中
  • 数据保存到硬盘的过程就称为 “持久化”

snap shotting 快照持久化

  • 该持久化默认开启,一次性把 redis 中全部的数据保存一份存储在硬盘中,如果数据非常多就不适合频繁该持久化操作
  • 默认备份文件名:dump.rdp
  • redis.conf 中有设置备份频率:
    save 900 1 900秒内如果超过1个key被修改,则发起快照保存
    save 300 10 300秒内超过10个key被修改,发起快照保存
    save 60 10000 60秒内超过10000个key被修改,发起来快照保存
  • 异步保存数据到磁盘:./redis-cli bgsave

append only file (AOF 持久化)

  • 会将每个一个 ‘写’ 的命令来通过 write 函数追加到文件中,当 redis 重启时会重新执行 ‘写’
    的命令来把aof文件中保存的数据,写入到快照的文件中
  • 开启 AOF 持久化(会清空 redis 内部的数据,提前开启)
  • 开启 AOF 持久化,要修改 redis.conf 中的 appendonly 的值,默认是 no (开启:yes)
  • 配置文件被修改,需要删除旧进程 ( 查看进程:ps -A | grep redis , 删除进程:kill -9 进程号
    ),重新开启服务。重启后会新建一个 appendonly.aof 配置文件(名字是默认的,更换备份文件名称:修改 redis.conf
    中的 appendfilename “appendonly.aof 名字” )
  • AOF 备份频率,在 redis.conf 中修改
  • #appendfsync always 每次监听到修改等指令就立即强制写入磁盘 appendfsync everysec (默认)每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中
  • #appendfsync no 则是看服务器是否有空闲,如果空闲并且有修改等指令则进行写入磁盘(性能较好,数据安全无法保证)
  • 为 aof 备份文件做优化处理:./redis-cli bgrewriteaof

redis 的主从模式

  • 为了降低每个 redis 服务器的负载,可以多设置几个,并做主从模式。一个服务器复制 ‘写’(添加,删除,修改)数据,其他服务器负载
    ‘读’数据。主服务器数据会 ‘自动’ 同步给从服务器.

  • 从服务器,要修改 redis.conf 中的 slaveof 主ip地址 主redis端口 (只能读到主服务器的数据)

  • 如果从要写入数据,要修改 redis.conf 中的 slave-read-only yes( 可以修改:no ) 默认是禁用修改 yes

Java-liunx-redis (jedis中的方法跟命令基本类似)
开始在 Java 中使用 Redis 前,需要下载驱动包 jedis.jar

连接到 redsi 服务
public class Test {
public static void main(String[] args) {
//第一个参数:liunx 的 ip 地址, 第二参数 redis 的端口,默认 6379
Jedis jedis = new Jedis(“192.168.1.103”, 6379);
System.out.println(jedis.ping());
}
}

Redis 中 String 类型的操作:
public class Test {
public static void main(String[] args) {
//第一个参数:liunx 的 ip 地址, 第二参数 redis 的端口,默认 6379
Jedis jedis = new Jedis(“192.168.1.103”, 6379);
//设置字符串数据
jedis.set(“Test”, “test”);
//获取对应的数据
System.out.println(jedis.get(“Test”));
}
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值