Redis

来源:互联网 发布:qq农场辅助软件 编辑:程序博客网 时间:2024/06/12 20:53

1.     在Linux的安装:

a)      首先创建安装文件的环境(联网输入代码):yum install gcc-c++;

b)      上传安装文件到/usr/local/目录下(默认安装文件路径);

c)       判断是否已经安装过了,如果安装过,进行卸载处理;

d)      解压缩,进入redis的文件夹,执行make产生机器码文件(可执行程序)

e)      Make PREFIX=路径 install  ---à将可执行程序安装到指定路径下

f)        开启服务器端:  bin/redis-server

g)      Cp redis-3.0.7(下载redis的版本)下面的redis.conf到/usr/local/redis下

h)      Vi redis.conf将daemonize 改为yes

i)        Vi /etc/sysconfig/iptables,放行6379端口

j)        启动服务: bin/redis-serverredis.conf

k)       Bin/redis-cli.

 

2.     Redis操作字符串:

a)      添加元素:set 键 值

b)      查找元素:get 键,如果键不存在,返回nil类似于null

c)       修改元素:set 已经存在的键 新值

d)      删除元素:del 键

3.     Redis操作hash:

a)      添加元素:hset hash对象 键 值   hmset hash 键  值  键  值 …..

b)      查找元素:hget hash对象  键     hmsethash对象  键1,键2   hgetall  hash对象

c)       删除元素:hdel  hash对象   键    del  键

4、Redis 操作语法 ---- list(LinkedList)

   增:lpush ----> 插入到头部

       rpush----> 追加到尾部

   查:lrange 键 索引1 索引2

       索引1 --- 开始索引

       索引2 --- 结束索引,可以使用 负数,-1 代表倒数第一个 -2 倒数第二个 ....

 

   改:lset 键 索引 新值

   删:lpop -----> 从头删

       rpop-----> 从尾删

5、Redis 操作语法 ---- set(HashSet)

   增:sadd 键 值1 值2.......

   查:smembers 键

       sismember键

   删:srem 键 元素

 

   集合运算:

       sdiffA B ----> 属于A不属于B

       sinterA B ---> 获取 A 与 B 的交集

       sunionA B ---> 获取 A 与 B 的并集

6、Redis 操作语法 ---- sorted-set(TreeSet)

   增:zadd 键名 分数1 元素1 分数2 元素2 ....

       Sorted-set是排序的 set,那么必须声明排序依据(分数),元素必须和数值一起存储

 

   查:zscore 键 元素 ----> 分数

       zcard键 ----------> 元素个数

       zrange键 开始索引 结束索引 (withscores) -----> 返回某个区间数据

             注意:Sorted-set虽然是 set,但是排序了,因此也可以使用索引进行操作

       zrevrange---------> 反序排列

   改:zadd 键名 新分数 旧名称

 

   删:zremrangebyscore 集合 开始分数 结束分数

       zremrangebyrank集合 开始名次 结束名次

7、Redis 操作语法 ---- key 通用操作

   增:redis 添加新数据增加键

   查:keys * ----> 查询所有键

       exists键 -> 查询某个键是否存在

       type键 ---> 查询数据类型

       expire键 整数(秒) ----> 设置键的生命周期

       ttl键 ----> 查询剩余的存活时间

 

   改:rename 原键 新键名

   删:del 键名

 

8、Jedis

   A、Redis 和 MySQL一样,也是数据库,最终也要和 Java 程序交互

   B、MySQL 和 Java 交互使用JDBC,Redis 和 Java 交互使用 Jedis

 

  Jedis 使用:

   A、导 jar 包

   B、获取连接

   C、连接上操作 Redis 数据库

   D、释放资源

 

  Jedis 简单实现:

              //1、获取一个连接对象

              Jedisj = new Jedis("192.168.17.132",6379);

              //2、操作数据

              j.set("jedis","hello jedis");

              System.out.println(j.get("jedis"));

              //3、释放资源

              j.close();

  Jedis 高级(使用连接池,提高效率,节省资源):

              GenericObjectPoolConfigpoolConfig = new JedisPoolConfig();

              //设置连接池信息,设置最大连接数

              poolConfig.setMaxTotal(100);

              //设置最大空闲连接数

              poolConfig.setMaxIdle(30);

              //设置最大等待时间

              poolConfig.setMaxWaitMillis(3000);

              //创建连接池对象

              JedisPooljp = null;

              Jedisj =null;

              try{

                     jp= new JedisPool(poolConfig , "192.168.17.132", 6379);

                     //从池中获取连接对象

                     j= jp.getResource();

                     System.out.println(j.get("jedis"));

              }finally {

                     //使用完,存回连接池对象

                     if(j!= null){

                            j.close();

                     }

                     if(jp!= null){

                            jp.close();

                     }

              }

 

9、Redis ---- 持久化

   A、持久化 --- 就是将内存中的数据序列化到磁盘,进行持久化存储

   B、Redis 实现持久化策略:

   方式1: RDB(默认)

       隔某个时间间隔,就对 redis 的数据进行一次持久化存储

       优点:效率高

       缺点:可能导致数据丢失、序列化是耗时操作,如果数据量大,可能导致 Redis 响应变慢

   方式2: AOF(手动开启)

       Redis一旦产生数据变动,就序列化到磁盘

       缺点:效率低

       优点:数据保存更及时,不会导致数据丢失

   C、RDB 具体实现细节

       save60 10000 在60秒内,如果数据变换10000次就序列化到磁盘

       save300 10          在300秒内,如果数据变换10次就序列化到磁盘

       save900 1            在900秒内,如果数据变换1次就序列化到磁盘

       关于 RDB 的序列化策略

      

       dbfilenamedump.rdb ---> 序列化后数据存储的文件

 

   D、AOF 具体实现细节

       appendonlyyes|no(使用或不使用)

      

       always---- 一有改动就写入

       everysec-- 一秒写一次

       no-------- 禁用

 

       appendonly.aof-----> 序列户后数据存储的文件

                           文件内容记录的 SQL 语句

  

   E、序列化应用 ---- 数据恢复

     

   F、Redis 可以同时启动多个(端口号不能重复)

原创粉丝点击