17.12.16,web学习第二十七天,还有一年,努力吧青年redis

来源:互联网 发布:阿里云客服在哪申请 编辑:程序博客网 时间:2024/06/05 05:39

Redis

1. Nutch是小型搜索引擎。

2. Nosql数据库特点:

3. Nosql数据库分类及产品:


1. Redis

是用c语言写的开源的高性能键值对数据库。

2. Redis的数据类型:

字符串;散列;列表类型;集合类型;有序集合类型;


1. Redis的应用场景:

缓存:数拒查询,新闻内容,商品内容等。

聊天室的在线好友列表。

任务队列:秒杀,抢购。

应用排行榜。

网站访问统计。

数据过期处理。

分布式集群中的架构分离。(存session

7. redis在Linux上的安装

1)安装redis编译的c环境,yum install gcc-c++

2)将redis-2.6.16.tar.gz上传到Linux系统中

3)解压到/usr/local下  tar -xvf redis-2.6.16.tar.gz -C /usr/local

4)进入redis-2.6.16目录 使用make命令编译redis

5)在redis-2.6.16目录中 使用make PREFIX=/usr/local/redis install命令安 装 redis/usr/local/redis

6)拷贝redis-2.6.16中的redis.conf到安装目录redis

7)启动redis bin下执行命令redis-server redis.conf

8)如需远程连接redis,需配置redis端口6379linux防火墙中开发

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

/etc/rc.d/init.d/iptables save

这样配置之后窗口不能关闭,窗口关闭默认redis就关闭了。类似Tomcat bin下的 startup.bat的方式。

配置后台启动:

修改配置文件配置redis后台启动。

redis.conf文件中的daemonizefalse修改成true表示后台启动

[root@centos bin]# vim redis.config

daemonize yes 然后保存

[root@centos bin]# ./redis-server redis.config //后端启动模式

[root@centos bin]#./redis-cli

查看端口是否启动:ps -ef | grep redis

8. 192.168.233.128 linxu地址。

进入redis开启服务之后 ctrl+c是停止服务。

Redis的启动模式分前端启动模式和后端启动模式。

前台启动模式窗口一关默认关闭服务。

后台启动redis,命令127.0.0.1:6379>exit是退出客户端。

后台启动redis中如何关闭服务:

1)直接杀死进程(不好)

   2[root@centos bin]# ./redis-cli

      127.0.0.1:6379> shutdown

9. Jedis的使用:(远程访问linux数据库需开放端口)

导包:commons-pool2-2.3.jar+jedis-2.7.0.jar

Jedis j=new Jedis(“192.168.233.128”,6379);

J.set(“”,””);

10. Jeids连接池拿Jedis对象的使用:

Idle:空闲的,闲置的。

记住jedis用完得关闭close(),池子JedisPool不需要关闭。

创建池子的配置对象:

JedisPoolConfig jpc=new JedisPoolConfig();

jpc.setMaxIdle(xxx); //设置最大闲置个数

   jpc.setMinIdle(xxx); //设置最小闲置个数,保证最小闲置的

   jpc.setMaxTotal(xxx); //最大连接数

   简版jedisPool工具类:

public class JedisUtils {

static JedisPoolConfig jpc=null;

static JedisPool jp=null;

static{

jpcnew JedisPoolConfig();

jpc.setMaxIdle(30);

jpc.setMinIdle(5);

jpc.setMaxTotal(50);

 jpnew JedisPool(jpc"192.168.233.128", 6379);

}

Jedis getJediss(){

Jedis j = jp.getResource();

return j;

}

}

11. Redis数据类型

String:

字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这 便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。Redis中字符串类型的Value最多可以容纳的数据长度是512M

Set key value:

Get key: value不存在返回null

Getset key value: 先拿到value再设置value

Incr key:原子性递增1key若不存在,则初始值为0。若value 值不能转为整型,报错。

Decr key:原子性递减1key不存在,则初始值为0.value值不能 转为整形,报错。

Incrby key increment:指定keyvalue增加increment,如key 存在,默认初始值为0.value值不能转为整形,报错。

Decrby key ddecrment:指定keyvalue减少decrement,key 存在,默认初始值为0value不能转为整形时,报错。

append key value:如果该key值存在,直接在value值追加value key值不存在,重新创建该valuekey

Hash

每一个Hash 可以存储4294967295个键值对。

非常适合存储对象信息,namepasswordage等。

Hset key field value:为指定的key设置键值对。

Hgetall key:获得key中所有field/value键值对。

Hget key field:获得指定keyfield的值value

Hmset key fields:设置key中多个多个field/value

Hmget key field:获得key中多个field的值。

Hexists key field:判断指定的key中的field是否存在。

Hlen key:获取key所包含field的数量。

hincrby key field increment:设置keyfiled的值增加increment 如:age增加20

Del key:删除整个Map

Del key field:删除一条记录。


List:(LinkedList,底层链表)

Lpush key value1,value2,value3..key关联的链表中插入value1 value2value3,如果该key不存在,创建新key和与之关联 的链 表。(头插)

Rpush key value1value2value3...key关联的链表中插入value1 value2,value3,如果该key不存在,在创建的新key和与之关 联的 链表。(尾插)

Lrange key start end:获取从startend的所有value-1表示尾, -2表示倒数第二个。

Lpushx key value1value2value3...仅当参数key存在时,头插。

Rpushx key value1value2value3...仅当参数key存在时,尾插。

Lpop key:弹出链表头部元素并返回。

Rpop key:弹出链表尾部元素并返回。

Rpoplpush resource destination:尾部元素弹出并添加至头部。可 以任意两个链表操作。

Llen key:返回value数量。

Lset key index value:替换脚标的元素值。0为头,-1为尾。

Lrem key count value:删除keycountvalue,如果count0 从左删。若果count0,从又删。=0,全删。

linsert key before|after pivot value:在pivot元素前或者后插入 value这个 元素。

Rplpush resouce destiontisn使用场景:



Set:

Sadd key value1value2...添加

Srem key value1,value2...删除指定成员。

Smembers key:获得所有元素。

Sismember key member:判断成员是否存在。1表示存在0

A-B集合运算

Sdiff key1 key2:返回属于key1不属于key2元素

Sinter key1key2:返回交集。

Sunion key1key2:返回并集。


Sortedset

Zadd key score1 member2  score2  member2...若果member 复,只把分数发覆盖。

Zsocre key member:获得指定成员的分数。

Zcard key:获得集合中成员数量。

Zrem key member1member2member3....删除指定成员。

Zrange key start end [withscore].返回key中脚标startend所有 成员,可选参数意思连分数一起返回。

Zrevrange key start stop [withscore].先反转为从大到小,再返回成 员。分数返回可选。

Zremrangebyrank key start stop:按照排名返回删除元素。

Zremrangebyscore key min max:按照分数范围删除元素。


9. Keys的通用操作

Keys pattern:返回匹配的所有key *代表任意字符。

Del key1key2.。。删除指定key

Exists key:返回1存在,返回0不存在。

 Rename key newkey:为当前的key重命名。

Expire key s:设置过期时间,单位s

Ttl key:获取剩余时间,-1表示没设置超市,-2表示不存在。

Type key:返回key的类型,String,list,set,zset,hash

10. REDIS特性

多数据库:16个库 (0-15)。默认使用第一个。

Select 1select语句选择数据库

Move key 1:将key移库到库1中。

补充:

Ping :判断连接是否存活。

Dbsize:返回库中key的数量。

Flushall:删除所有库的所有key

11. 消息订阅与发布,事务

Subscribe channel;接收

Publish channel content:发布

第一个连接发布,第二个连接接收。

事务操作:当语句出现错误时,将忽略错误语句。

 

12. Redis的持久化(了解)和总结:

Redis主要做缓存,写在内存里。

两种方法持久化(写到磁盘上):

RDB(默认支持,无需配置):快照(备份)。

缺点:拍照时间有间隔,这个拍照间隔时间可以在配置文 件里修改。dum.rdbredis.conf在同文件夹下。

AoF:以日志的形式记录所有操作步骤。

缺点:效率低


阅读全文
0 0