redis的使用详解以及相关命令

Redis的使用方法

端口号:6937 mongodb端口为27017.

安装方法 http://www.jb51.net/article/79096.htm

Redis 后台启动方法指定启动目录:

redis-server /usr/local/redis/ect/redis.conf

用户名设置 密码

Jedis.auth(zhangchao);

Jedis.close();//关闭连接

一、字符串的使用方法

1、获取到Jedis对象

Jedis jedis =new Jedis("192.168.200.128", 6379);

2、通过jedis对象set储存get获取 是key value的格式。

储存字符串:

jedis.set("name","redis数据库");

获取字符串:

jedis.get("name");返回值为String类型的

二.List列表的使用方法

  1、往列表为List的表中存储数据 是从前面开始存储。

rpush(key, value):在名称为keylist尾添加一个值为value的元素

lpush(key, value):在名称为keylist头添加一个值为value 元素

 

jedis.lpush("list","公司大佬");

jedis.lpush("list","公司大佬");

jedis.lpush("list","公司大佬");

jedis.lpush("list","公司大佬");

jedis.lpush("list","公司大佬");

2、列表取出数据:

 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度-1表示取得所有数据。

jedis.lrange("java framework",0,-1)

三、map的使用

1、map的储存数据以及获取数据 :

Map<String, String> map = new HashMap<String, String>();

map.put("name","xinxin");

map.put("age","22");

map.put("qq","123456");

jedis.hmset("user",map);

// 取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List

// 第一个参数是存入redismap对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数

List<String> rsmap = jedis.hmget("user", "name", "age", "qq");

System.out.println(rsmap);

四、reids Set的使用方法

 1、对set集合的存储以及读取:

// 添加数据

jedis.sadd("user1","liuling");

jedis.sadd("user1","xinxin");

jedis.sadd("user1","ling");

jedis.sadd("user1","zhangxinxin");

jedis.sadd("user1","who");

// 移除who

jedis.srem("user1","who");

System.out.println(jedis.smembers("user1"));//获取所有加入的value

System.out.println(jedis.sismember("user1","who"));//判断 who是否是user集合的元素

System.out.println(jedis.srandmember("user1"));//随你放回user1中任意的一个值

System.out.println(jedis.scard("user1"));//返回集合的元素个数

五、redis的排序问题

// jedis 排序

// 注意,此处的rpushlpushList的操作。是一个双向链表(但从表现来看的)

jedis.del("a");//先清除数据,再加入数据进行测试

jedis.rpush("a","1");

jedis.lpush("a","2");

jedis.lpush("a","3");

jedis.lpush("a","4");

System.out.println(jedis.lrange("a", 0, -1));// [9, 3, 6, 1]

System.out.println(jedis.sort("a"));// [1, 3, 6, 9] //输入排序后结果默认是按从小大输出

System.out.println(jedis.lrange("a", 0, -1));

六、redis连接池的使用:

     /**

      * 初始化Redis连接池

 

 

      */

static {

try {

JedisPoolConfig config = new JedisPoolConfig();

config.setMaxActive(MAX_ACTIVE);

config.setMaxIdle(MAX_IDLE);

config.setMaxWait(MAX_WAIT);

config.setTestOnBorrow(TEST_ON_BORROW);

jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);

         } catch (Exception e) {

             e.printStackTrace();

         }

     }

/**

* 从连接池中获取到redis对象来操作redis

*/

     /**

      * 获取Jedis实例

      * @return先判断是否为空在加一个同步锁

      */

public synchronized static Jedis getJedis(){

try {

if (jedisPool !=null) {

Jedis resource = jedisPool.getResource();

  return resource;

} else {

 return null;

             }

         } catch (Exceptione) {

            e.printStackTrace();

            return null;

         }

     }

}

    /**

     * 释放jedis资源

      * @param jedis

      */

     public static void returnResource(final Jedisjedis) {

         if (jedis !=null) {

             jedisPool.returnResource(jedis);

         }

     }

七、redis各种命令的使用https://my.oschina.net/ydsakyclguozi/blog/421070p={{totalPage}}

1.value操作的命令

     exists(key):确认一个key是否存在

     del(key):删除一个key

     type(key):返回值的类型

     keys(pattern):返回满足给定pattern的所有key

     randomkey:随机返回key空间的一个key

     rename(oldname, newname):将keyoldname重命名为newname,若newname存在则删除newname表示的key

     dbsize:返回当前数据库中key的数目

     expire:设定一个key的活动时间(s

     ttl:获得一个key的活动时间

     select(index):按索引查询

     move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库

     flushdb:删除当前选择数据库中的所有key

     flushall:删除所有数据库中的所有key

2.String操作的命令

     set(key, value):给数据库中名称为keystring赋予值value

     get(key):返回数据库中名称为keystringvalue

     getset(key, value):给名称为keystring赋予上一次的value

     mget(key1, key2,, key N):返回库中多个string(它们的名称为key1key2…)的value

     setnx(key, value):如果不存在名称为keystring,则向库中添加string,名称为key,值为value

     setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time

     mset(key1, value1, key2, value2,key N, value N):同时给多个string赋值,名称为key istring赋值value i

     msetnx(key1, value1, key2, value2,key N, value N):如果所有名称为key istring都不存在,则向库中添加string,名称          key i赋值为value i

     incr(key):名称为keystring1操作

     incrby(key, integer):名称为keystring增加integer

     decr(key):名称为keystring1操作

     decrby(key, integer):名称为keystring减少integer

     append(key, value):名称为keystring的值附加value

     substr(key, start, end):返回名称为keystringvalue的子串

3.List操作的命令

     rpush(key, value):在名称为keylist尾添加一个值为value的元素

     lpush(key, value):在名称为keylist头添加一个值为value 元素

     llen(key):返回名称为keylist的长度

     lrange(key, start, end):返回名称为keyliststartend之间的元素(下标从0开始,下同)

     ltrim(key, start, end):截取名称为keylist,保留startend之间的元素

     lindex(key, index):返回名称为keylistindex位置的元素

     lset(key, index, value):给名称为keylistindex位置的元素赋值为value

     lrem(key, count, value):删除count个名称为keylist中值为value的元素。count0,删除所有值为value的元素,count>0      从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。

     lpop(key):返回并删除名称为keylist中的首元素

     rpop(key):返回并删除名称为keylist中的尾元素

     blpop(key1, key2, key N, timeout)lpop命令的block版本。即当timeout0时,若遇到名称为key ilist不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对key i+1开始的list执行pop操作。

     brpop(key1, key2, key N, timeout)rpopblock版本。参考上一命令。

     rpoplpush(srckey, dstkey):返回并删除名称为srckeylist的尾元素,并将该元素添加到名称为dstkeylist的头部

4.Set操作的命令

     sadd(key, member):向名称为keyset中添加元素member

     srem(key, member) :删除名称为keyset中的元素member

     spop(key) :随机返回并删除名称为keyset中一个元素

     smove(srckey, dstkey, member) :将member元素从名称为srckey的集合移到名称为dstkey的集合

     scard(key) :返回名称为keyset的基数

     sismember(key, member) :测试member是否是名称为keyset的元素

     sinter(key1, key2,key N) :求交集

     sinterstore(dstkey, key1, key2,key N) :求交集并将交集保存到dstkey的集合

     sunion(key1, key2,key N) :求并集

     sunionstore(dstkey, key1, key2,key N) :求并集并将并集保存到dstkey的集合

     sdiff(key1, key2,key N) :求差集

     sdiffstore(dstkey, key1, key2,key N) :求差集并将差集保存到dstkey的集合

     smembers(key) :返回名称为keyset的所有元素

     srandmember(key) :随机返回名称为keyset的一个元素

5.zsetsorted set)操作的命令

     zadd(key, score, member):向名称为keyzset中添加元素memberscore用于排序。如果该元素已经存在,则根据score更新该元素的顺序。

     zrem(key, member) :删除名称为keyzset中的元素member

     zincrby(key, increment, member) :如果在名称为keyzset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment

     zrank(key, member) :返回名称为keyzset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil

     zrevrank(key, member) :返回名称为keyzset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil

     zrange(key, start, end):返回名称为keyzset(元素已按score从小到大排序)中的indexstartend的所有元素

     zrevrange(key, start, end):返回名称为keyzset(元素已按score从大到小排序)中的indexstartend的所有元素

     zrangebyscore(key, min, max):返回名称为keyzsetscore >= minscore <= max的所有元素

     zcard(key):返回名称为keyzset的基数

     zscore(key, element):返回名称为keyzset中元素elementscore

     zremrangebyrank(key, min, max):删除名称为keyzsetrank >= minrank <= max的所有元素

     zremrangebyscore(key, min, max) :删除名称为keyzsetscore >= minscore <= max的所有元素

     zunionstore / zinterstore(dstkeyN, key1,,keyN, WEIGHTS w1,wN, AGGREGATE SUM|MIN|MAX):对Nzset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATESUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MINMAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。

6.Hash操作的命令

     hset(key, field, value):向名称为keyhash中添加元素field<>value

     hget(key, field):返回名称为keyhashfield对应的value

     hmget(key, field1, ,field N):返回名称为keyhashfield i对应的value

     hmset(key, field1, value1,,field N, value N):向名称为keyhash中添加元素field i<>value i

     hincrby(key, field, integer):将名称为keyhashfieldvalue增加integer

     hexists(key, field):名称为keyhash中是否存在键为field的域

     hdel(key, field):删除名称为keyhash中键为field的域

     hlen(key):返回名称为keyhash中元素个数

     hkeys(key):返回名称为keyhash中所有键

     hvals(key):返回名称为keyhash中所有键对应的value

     hgetall(key):返回名称为keyhash中所有的键(field)及其对应的value

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值