redis基本概念

redis关系型数据库

mysql oracle sql… db2 特点:数据在硬盘上
非关系型数据库 redis 持久化 缓冲 特点 内存中 读写性能高 保存数据的时候那些数据:1 经常查询的数据 2 不经常修改的数据
解决问题 : 高并发 高可用(主机宕机,备机顶上) 扩展性
redis数据支持的值类型: 键都是字符串
1 字符串类型(掌握) 95%以上使用它
2 散列类型(了解)— hash
3 列表类型(了解)— list
4 集合类型(了解)— set
5 有序集合类型(了解)–sortedset
字符串,散列,列表,集合,有序集合

注意命名:
key的常用的写法: 项目名_子模块_key名称

一, 字符串类型:

		设置
			set key value 
		获取
			get key
		删除
			del key
		
		自增 +1
			incr key
		自减 -1
			decr key
		扩展的命令:
			getset key value:先获取再设置
			incrby key count:指定增加数量
			decrby key count:指定减少数量
			append key value:追加
				若有指定的key 则追加
				若无,则设置一个
hash
     把值看成map集合
	需求比如:   key:user1    value: username jack  
				         age      18
	
		    key:user1    value: username rose 
				         age      16
					 sex      man
     设置
		hset key subkey1 subvalue1 :设置一个键值对
		hmset key subkey1 subvalue1  subkey2 subvalue2 ...:设置多个键值对
     获取
		hget key subkey:获取一个子键的值
		hmget key subkey1 subkey2...:获取多个子键的值
		hgetall key:获取所有的键值对
     删除-子键
		hdel key subkey1 subkey2 ...

二,列表类型

两端的插入:
	lpush key member1 member2.. :往左边开始插入	
	lpush l1 a b c d e f g h--->     h,g,f,e,d,c,b,a		 
	rpush key member1 member2.. :往右边开始插入
	rpush l1 a b c d e f g h     a,b,c,d,e,f,g,h
两端的删除:     d c b a e f g h
	lpop key :左边弹出一个
	lpop l2 --->c,b,a,e,f,g,h
	rpop key :右边弹出一个
	rpop l2-->c,b,a,e,f,g
查看:
	lrange key startindex endindex
		lrange key 0 -1 :查看所有
扩展:
	llen key :获取key对应的元素数量
	lrem key count member :在key中移除指定个数的成员   a b c d a b c d a b c d 
		count > 0 :从左往右移除指定个数
		count < 0 :从右往左移除指定个数
		count = 0 :清空list中指定元素


	del key : 全删

三,集合类型

set类型

	特点:无序唯一 
	sadd key member1 member2 :添加
	srem key member1 member2 :移除指定元素
	smembers key :查看
扩展:
	sismember key member :判断一个set中是否有指定的成员
		   有:1
		   无:0
	聚合运算    sa2=a b c d       sa3=b c d e
	sdiff key1 key2 :我有你没有
	sunion key1 key2:我有加你有
	sinter key1 key2:我有你也有
	sdiffstore key1 key2 key3:将key2有的key3没有的差异部分插入key1
	sunionstore key1 key2 key3:将key2和key3并集部分插入key1
	sinterstore key1 key2 key3:将key2和key3交集部分插入key1
	del key : 全删

sortedset类型

必须要有一个数值来与之关联,因为要通过这个数值来排序
	zadd key score1 member1 score2 member2...: 添加
	zscore key member :获取成员的得分
	zrem key member1 member2... :删除指定成员
	zcard key :展示元素的长度
展示所有的元素:
	zrange key startindex endindex [withscores] 升序
	zrevrange key 0 -1 withscores 降序
	del key : 全删`

redis通用的操作

1 keys *:查询所有的key	
	2 exists key:判断是否有指定的key 若有返回1,否则返回0
	3 ttl key:展示指定key的存活时间
		若返回值为 -1:永不过期
		若返回值为 -2:已过期或者不存在
		expire key 秒数:设置这个key在缓存中的存活时间
	4 del key:删除指定key
	5 rename key 新key:重命名
	6 type key:判断一个key的类型

redis的特性

 多数据库
 select index:切换库
 move key 指定数据库: 将当前库的数据移动到指定库中
 dbsize: 返回当前库中有多少个key
 flushdb:清空当前数据库数据
 flushall:清空当前实例下所有的数据库数据

消息的订阅和发布(了解)

发布信息:publish 频道 消息内容
小A--java 小B--java,js
	订阅单个信息: subscribe java1
	订阅多个信息: psubscribe channel java1 js1

redis的事物(了解)

非关系数据库和关系型数据库事务的区别:
 1 关系型数据库在事务中处理数据如果发生了异常,下面的所有数据不执行 
 2 非关系数据库在事务中处理数据如果发生了异常,下面的数据继续执行 
 总结 非关系数据库在事务中处理数据,所有要处理的数据都需要排队等待,只有事务提交之后,才会按
      排队的顺序依次处理,处理到异常数据,继续往下执行

redis的持久化:

1 rdb(快照方式) 
	默认开启的  
		bin/redis.conf    查save
	策略:
		#   after 900 sec (15 min) if at least 1 key changed
		#   after 300 sec (5 min) if at least 10 keys changed
		#   after 60 sec if at least 10000 keys changed
2 aof(配置文件命令方式)
	默认不开启
	若要开启,必须修改配置文件bin/redis.conf  搜appendonly
		appendonly yes
	策略:
		# appendfsync always  每次都写入
		appendfsync everysec  每秒写入
		# appendfsync no 不写入

java代码操作redis数据库数据

  java代码-->jdbc-->mysql
  java代码-->jsdis-->redies
  jedis:相当于jdbc
使用步骤:
		1.导入jar包
		2.创建jedis对象  new jedis(“”,“”)
			new Jedis("192.168.17.136", 6379)
		3.通过jedis操作redis数据库 
		4.释放资源
使用连接池优化:
		// 创建数据源的配置对象
		JedisPoolConfig config = new JedisPoolConfig();
		// 创建一个连接池
		JedisPool pool = new JedisPool(config, "192.168.19.128",6379);
		// 获取jedis对象
		Jedis jedis = pool.getResource();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fengtangjiang

您的支持是我前进的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值