Redis --day12

Redis --day12

一、简述

1.关系型数据库、非关系数据库

 关系型数据库:二维表及其之间的联系所组成的一个数据组织,数据之间存在关系,最典型的数据结构是表(表间和表内各种数据存在关系)。
优点:
 因为数据间存在关系,可以很好的执行数据的增删改查询,存在事务操作保证数据完整性。
缺点:
 也是由于数据库间存在关系,这些关系依赖大量底层算法来实现,消耗大量系统资源,影像效率。面对海量数据的时候-增删改查操作和修改表结构困难。

2.非关系型数据库

 去掉大量底层算法(关系)的数据库。

1)非关系数据库
分类特点代表
key-value处理海量高访问数据Redis
列存储数据库执行效率最高,对系统硬件要求十分高(列簇单元格存储,表长不定消耗内存极大)HBase
文本型数据库(淘汰)移除了关系,而且执行性能不高MongoDB
图形数据库社交网状结构Neo4j
2)Redis简介

 不像HBase对硬件要求那么高,而且处理速度和性能都十分良好。
 不像关系型数据库那样频繁对数据进行编码解码,二进制安全(和数据安全是两回事),客户端传入数据的编码格式和后来获取到的数据编码格式相同。
适合场景
 1.为关系型数据库缓存(主要使用)
 2.用于做任务队列(一系列任务模块 模块1完成放到末尾执行模块2。。。)
 3.用于大量数据运算(如:海量数据求交集)

安装
RPM命令:
相当于windows 添加/卸载程序
可以执行操作:安装、更新、卸载、查看。
rpm -ivh 程序名 进行程序安装
rpm -qa 查询所有程序
rpm -e --nodeps 程序名


yum命令:
相当于联网的rpm命令
联网下载安装或更新包,执行rpm命令

按顺序依次联网安装依赖(基本依赖,安装其他如mysql、tomcat等也会用到)
yum install glibc.i686
yum -y install libaio.so.1 libstdc++.so.6
yum update libsdc++4.4.7-4.e16.x86_64
yum install gcc-c++
开始Redis安装
1.解压文件
2.进入解压目录 make(先编译)
3. make PREFIX=/usr/local/redis install(安装)
4.回到解压目录,拷贝配置文件redis.conf 到 redis目录。
服务启动
1)前端启动
进入Redis目录 ./bin/redis-server 不能进入bin目录后redis-server
默认启动端口号:6379
(前端启动方式无法集群布置)
2)后端启动
修改配置文件 daemonize 后no 改为yes 设置成守护进程运行
可以修改端口号。
启动的时候再原来的启动命令后加上 空格 + ./redis.conf
通过这种方式,修改端口启动,可以启动多个Service
客户端启动
redis目录下 ./bin/redis-cli
关闭
用连接服务的客户端关闭服务:shutdown
打开服务界面Ctrl + C(前端启动有界面情况下可用)
kill -9 pid 会造成数据丢失一般不使用。
关闭客户端:quit

##二、Redis常用命令

1.String

 键的设置太长影像效率,键查找的时候从最短位开始匹配。
 value 有最大长度,多少忘了,反正够用

看名知意
set key value
get key
del key
incr key 相当于++操作(值类型不是数字就会报错)
decr key 相当于–操作
append key value 拼接字符串

2.hash

 key-value 格式map容器,相对字符串而言同样语义数据用hash类型保存会节省很大空间

hset key field value
hmset key field1 value1 field2 value2…
hget key field
hmget key fields
hgetall
hdel key field
del key
hexists 是否存在
hlen 查看长度
hkeys
hvals

3.List

 插入和删除只影响两个其他元素,数据量多少对增删速度没有多大影响。

lrange key start end
l/rpop key 删除开头/末尾第一个节点
lr/push key 开头或末尾增加一个
llen key
lrem key +/-数量 指定字符 (从左边/右边开始删除 指定数量的 指定字符 尽量不要使用,会给元素加索引,影响速度)
lset key 下标 value
linsert key before/after value1 value2
rpoplpush list1 list2 将list1末尾元素加到list2 首位(list1和2可以相同,做循环列表)

4.set

 无重复,可以快速进行大量数据的交并集操作

sadd key values
srem key values
smembers key 遍历
sismember key value 看是否存在
sdiff key1 key2 (A-B)
sinter key1 key2(AnB)
sunion key1 key2(AuB)
scard key 获取成员数量
srand member key 随机取出
交集运算+stroe key key1 key2 key3 将结果集保存到key

5.有序set

 做排行榜,set基础上每个元素有分数,可以按分数来排名,默认小到大

zadd key 分数 value 分数 value
zscore key member 查看成员分数
zcard key 查看成员数量
zrem key 删除
zrange key start end 范围查看
zrevrange key start end 反序查看
【withscores】 查询结果带分数[可选]
zremrangebyrank key start end
zremrangebyscore key min max
zrangeby~~~ ~~~
zincrby key 分数 成员 (为指定成员加多少分)
zcount key min max (指定区间成员数)
zrank/revrank key member 指定成员排名词(小到大/大到小)

三、Jedis

@Test
	public void test() {

//		//打开端口  防火墙
		[root@bogon redis]# /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
		[root@bogon redis]# /etc/rc.d/init.d/iptables save  写成service iptables save
//		
		/*jedis连接池*/
		//1.设置连接池配置对象
		JedisPoolConfig config=new JedisPoolConfig();
		//可选
		//设置最大连接数
		config.setMaxTotal(50);
		//空闲时池中保留的最大连接数
		config.setMaxIdle(10);
		
		//2.设置连接池对象
		JedisPool pool=new JedisPool(config,"192.168.220.129", 6379);
		//3.获取连接对象
		Jedis jedis=pool.getResource();
		System.out.println(jedis.get("Myname"));
		//4.归还
		jedis.close();
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值