Redis(简介及其使用)

redis(安装及其使用)

redis的概念

1.reedis简介

1.Redis是完全开源免费,遵循BSD协议,是一个高性能的key-value的数据库

2.Redis与其他key-value缓存产品有以下三个特点

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供;list,set,zset,hash,等数据结构存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。
Windows中安装redis
[下载]:http://github.com/MSOoenRech/redis/releases

2.使用命令操作redis数据

1、进入redisd的src目录

redis-cli.exe -h localhost -p 6379  #登录redis
redis-cli.exe -hlocalhost -p 6379 -a 123456 #登录redis 使用密码登录 123456是密码

2、符串类型操作设置单个

SET name value #set name2 张三 name2 李四

3、字符串类型操作设置多个

MSET key1 value1 key2 value2  #mset name1 张三 name2 李四

4、字符串类型获取单个

GET key1  #get name1

5、字符串类型获取多个

MGET key1 key2   #mget name1 name2

6、删除指定键

DEL key1 key2  #del name1 name2

7、在原有的值上追加值

APPEND key1 value  #append name1 你好

8、让键在一定时间后失效

EXPIRE key1 second   #expire name1 5

设置键在多少秒后失效,PEXPIRE是毫秒语法

9、同一键只能存储一次

SETNX key1 value
#只在key不存在的情况下,将键key的值设置为value
#若键key已经存在,则SETNX命令不做任何动作
#设置成功,返回1,设置失败,返回0.
10、哈希常用操作方法
HSET key field value  #hset user(hash集合名) name(键) 张三   #设置哈希表key中的域field的值
HMSET key field value [field value...]   #设置哈希表key中的多个域的值
HLEN key     							#返回哈希表key中的域的数量
HGET key field 							#设置哈希表key中的域field的值
HEXISTS key field 				#判断哈希表是否包含某个域field包含返回1,不包含返回0
HDEL key field [field...]			#删除哈希表中的一个或多个域
11、列表常用操作方法
LPUSH key value[value...]   #将一个或多个value插入列表的表头
LPOP key					#移除并返回列表的头元素(后进先出),若key不存在返回nil
RPUSH key value[value...]   #和lpush类似,但是它是将数据插入到表尾(最右边)
RPOP key 					#移除并返回列表的末尾,若key不存在则返回nil
LSET key index value		#将列表中指定位置的值该为指定的值,若key不存在或index超出索引是,返回错误
LLEN key 					#返回列表的长度
LRANGE key START END 		#返回列表中指定区间内的元素,区间以偏移量STARE和END指定
12、集合常用方法
SADD key member[member...]	#将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略
SMEMBERS key 				#返回集合中的所有的成员
SPOP key 					#用于移除并返回集合中的一个随机元素
SREM key member1..membern 	#用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略
13、有序集合常用方法
ZADD key score member  #向有序集合key中插入一个或多个元素。如果元素已经存在,更新score的值并移动member 元素的位置
ZCAED key 				#返回有序集合key元素个数
ZCOUNT key min max 		#返回有序集合key中分数在min到max的元素的个数
ZRANK key start stop [WITHSCORES] #按照默认的升序,返回有序集合key中位置从start到stop的所有元素
ZRANK key member		#按照默认的升序,返回元menber在有序集合key中的排名
ZRANK key member  [member ...]    #移除有序集合key中的一个或多个元素

使用api操作redis
## 1.导入jedis包
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis -->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.6.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

2.applicationCentext.xml(springMvc.xml)文件配置连接redis信息

<!-- spring管理redis缓存管理器 -->
   <bean id="redisCacheManager" 
class="org.springframework.data.redis.cache.RedisCacheManager">
		<constructor-arg index="0" ref="redisTemplate"/>
	</bean>

	<cache:annotation-driven cache-manager="edisCacheManager"/>

	<!--jedis连接池配置-->
	<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxIdle" value="300"/>
         <property name="maxWaitMillis" value="300"/>
         <property name="maxTotal" value="600"/>
         <property name="testOnBorrow" value="true"/>
	</bean>

	<!--redis的连接工厂-->
	<bean id="connectionFactory" 
          class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
          p:host-name="192.168.83.98" p:port="6379" p:pool-config-ref="poolConfig"
   p:password="123456"
          p:database="0" />

	<!--spring data 提供 redis模板 -->
 	<bean id="redisTemplate"
   class="org.springframework.data.redis.core.StringRedisTemplate">
		<property name="connectionFactory" ref="connectionFactory" />
         <property name="keySerializer">
        
        <bean class="org.springframework.data.rerializer.StringRedisSerializer"/>
        </property>
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer">					</bean>
        </property>
	</bean>

	

3.编写RedisUtils工具类

@Service
public class UserServiceImpl implements UserService{
 	@Resource
	private RedisTemplate<String,String>redisTemplate;
        
     public String getCity(){
        	//通过模板,获取到Stirng类型的redis对象
        	valueOperations<String,String>redisString=redisTemplate.opsForValue();
        	//使用set方法,保存key和value的值
        	redisString.set("city","aabb");
        
        	//使用get(key)的方法获取到city对应的值
        	String string=redisString.get("city");
        
        	return string;
        }   
        
      public List<String>  getCitys(){
          //通过模板获取list类型的redis
          ListOperations<String,String>redisList=redisTemplate.opsForList();
          
          //通过key依次插入数据
          redisList.leftPush("xxx","xxx");
          
          //查找索引范围内的所有数据
          List<String>ranger=redisList.range("xxx",0,10);
          return range;
      }
    
    public void setRedisTemplate(RedisTemplate<String,String>redisTemplate){
        this.redisTemplate=redisTemplate;
    }
}

Listranger=redisList.range(“xxx”,0,10);
return range;
}

public void setRedisTemplate(RedisTemplate<String,String>redisTemplate){
    this.redisTemplate=redisTemplate;
}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值