【无标题】

Redis初识

什么是Redis?

         简单理解就是:Redis 是一个单进程的高性能的键值对的数据库;

关系型数据库和非关系型数据库最明显的区别?

		(1)关系型数据库具有固定的表结构和数据;
		(2)非关系型数据库不具有固定的表结构,一般只具有key-value键值对的存储结构;

	1		

Redis的核心特点:

		Redis的服务器程序采用的是单进程模型来处理客户端的请求。对读写时间的响应是通过对		
		epoll函数的包装来做到的。

Redis的存储的数据类型原理分析:

		1、 key 键的类型:  String 类型;  (字符串类型)
		2、 value 值的类型: 分为五种:
			2.1  String类型 , 
			2.2	 hsah 类型 , 
			2.3	 列表 list 类型 ,
			2.4	 无序集合 set 类型 ,
		    2.5	 有序集合 zset 类型 

2.1 String 类型(字符串类型)

		字符串(String)是Redis的最基本的类型

Redis string最常用的一些命令

	    (1)  set     命令       
	    	设置值 : 		set  "key "  "value"
	    	设置过期时间:   setex  "key "  "seconds"   " value"   
	    	设置多个键值对: mset  "key1"  "value1"  "key2"  "value2"   "key3"  "value3" ....
	    	设置追加值:    	append   "key"   "value"
	 	(2)  get     命令		
	 	    获取值: 	   
	 	   (1)get  "key"(获取单个值); (2)get  "key1"   "key2"(获取多个值)
        (3)  del     命令
        	删除值:		
           (1)del  "key"(删除某个值); (2)del  "key1"   "key2"(删除多个值)
        (4)  keys    命令
            查找值: 		 keys   *
    	(5)  exists  命令
    	    判断键是否存在:	exists   “key”  返回1,存在  返回 0, 不存在
   	    (6)  type    命令
   	        查看键对应的值的类型:  	type    "key"
        (7)  expier  命令
            设置键键过期:	    	expire  "key"  " seconds"
        (8)  TTL     命令
           	 TTL"key"
             TTL以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
             返回值:
             当 key 不存在时,返回 -2 ;
             当 key 存在但没有设置剩余生存时间时,返回 -1 ;
             否则,以秒为单位,返回 key 的剩余生存时间。

2.2 Redis list 类型

		list可以在头部和尾部插入一个新元素,其时间复杂度是常数级别的;
		弊端是:元素定位比数组慢

Redis list类型的常用的命令:

	(1)添加:  lpush(leftPush 从左侧插入); rpush(rightPush 从右侧插入)
	(2)获取 
		获取列表指定范围内的值:
		语法:lrange key start stop
		1. 索引从左侧开始,第一个值的索引为0;if : lrange  key 0 -1
		2. 索引可以是负数,表示从尾部开始计数,如-1表示最后一个值;	if : lrange key 2 -1
		3. tart,stop为要获取值的索引。	
	(3)修改
		设置指定索引位置的值
		语法:lset key index value
		1. 索引从左侧开始,第一个值的索引为0;  if:  lset  key  1  value
		2. 索引可以是负数,表示从尾部开始,-1代表最后一个值。if: lrange key   0 -1
	(4)删除
		删除指定值
		语法:lrem key count value
		1.	将列表中前count次出现的值移除
		2.	count>0:从头往尾删除 
		3.	count<0:从尾往头删除
		4.	count=0:删除所有值语法:lrem key count value

2.3 Redis set 类型

	set 字符串,是通过HashTable实现的,是无序不可重复的

Redis set 类型的常用命令

   (1)添加元素 	sadd  
   		不能重复但是可以设置多个值: sadd key value1 vlaue2....
   (2) 获取集合种所有的元素
   			smembers  key
   (3) 判断元素是否在集合中
   			sismember  key  value
   (4) 删除元素
   			srem  key  value
   (5) 获取集合中元素的个数
   			scard  key
   (6) 将元素随机弹栈出去
   			spop key
  (7)移动元素到一个新的数据库
  		smove   key 1 key2 value

2.4 Redis hash 类型

			按Hash方式来存放字符串	

Redis hash类型的常用命令

   (1) 设置单个值
   		hset key  id vlue
   		hset key  name vlue
   (2)同时设置多个键值对
   		  hmset  key  name value1  age  vlue2
   (3)获取 key 键下的所有的值
   	      hgetall  key 
   (4)获取单个key键值
   			hget key name / age
   (5)同时获取多个key键值
   			hmget key  id  name  age
   (6)删除某一项
   			hdel key  id / name / age

2.5 Redis zset类型(有序集合)

	字符串Set,有序且不可重复,根据Score来排序。
	score可以是整数,也可以是浮点数,还可以是+inf表示正无穷大,-inf表示负无穷大

Redis zset 类型的常用命令

	(1) 添加元素
			zadd key  score1 value score2 value...
			举例:
			zadd  test 10 12345 20 zhangsan 30 lisi 40 40.5
			运行结果:
			row      value     score
			1		 12345 		10
			2		 zhangsan 	20
			3		 lisi	    30
			4		 40.5 		40
 	(2)获取索引区间内的元素
 			zrange test 0-1 获取value组的值
 			zrange test 0-1 withscores 获取 value组和score组的值
 	(3)获取分数区间的元素
	 		zrangebyscore test 0  20          获取 test>=0 && test<=20的区间的value值
 			zrangebyscore myzset 0  (20          获取 test>=0 && test<20的区间的value值
 			zrangebyscore myzset 0  (20 withscores 
 			获取 test>=0 && test<20的区间的value值和score值				
 			zrangebyscore myzset 20 +inf withscores  
 			获取 test>=20 的value值和score值
 			zrangebyscore myzset (20 +inf withscores 
 			 获取 test>20 的value 值和score值
 	(4)删除元素
 			zrem  test value 1  删除表中单个
 			zrem  test value 1  value2  删除表中多个
 			zrangebyscore test 0 +inf withscores 获取表中大于0的所有键值对
 	(5)获取集合中元素个数
 			zcard  test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值