当前位置: 首页>数据库>正文

Android会用到Redis吗 安卓 redis

Redis:

1.介绍:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,现在很流行。

2.安装:

我安装的是windows版本,redis官网还没有windows版本,但是微软提供了windows版本,以下是地址:

github下载的redis链接

Android会用到Redis吗 安卓 redis,Android会用到Redis吗 安卓 redis_数据,第1张

解压完之后运行服务端

Android会用到Redis吗 安卓 redis,Android会用到Redis吗 安卓 redis_数据_02,第2张

然后在运行客户端

Android会用到Redis吗 安卓 redis,Android会用到Redis吗 安卓 redis_数据_03,第3张

然后直接在客户端上敲就行了

3.使用

  • 1.可以直接在客户端敲命令
  • 在eclipse上用java写(我是这么做的)

在eclipse中用java操作需要在maven中添加依赖

<dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>

常用操作

  1. 操作string
package com.demo.redis_demo;
import redis.clients.jedis.Jedis;

public class StringDemo {
    public static void main(String[] args) {
        //链接本地redis服务
        Jedis jedis=new Jedis("localhost");
        System.out.println("链接成功");
        //查看服务是否运行
        System.out.println("服务正在运行"+jedis.ping());
        //清空数据
        jedis.flushDB();

        //新增
        jedis.set("key001","value001");
        jedis.set("key002","value002");
        jedis.set("key003","value003");
        System.out.println("已新增的3个键值对如下:");
        System.out.println(jedis.get("key001"));
        System.out.println(jedis.get("key002"));
        System.out.println(jedis.get("key003"));
        //删除
        jedis.del("key001");
        System.out.println(jedis.exists("key001"));
        //修改(直接覆盖原来的数据)
        jedis.set("key002", "sfda");
        System.out.println(jedis.get("key002"));

        //批量赋值
        jedis.mset("k1","v1","k2","v2","k3","v3");
        //批量删除
        jedis.del("k1","k2");
        System.out.println("一次性获取k1,k2,k3的值"+jedis.mget("k1","k2","k3"));
        //获取原值并设置新值
        System.out.println(jedis.getSet("k3", "abcdefgh3"));
        System.out.println(jedis.get("k3"));
        //截取字符串
        System.err.println(jedis.getrange("k3", 0, 1));
    }
}
  1. 操作set
package com.demo.redis_demo;

import java.util.Iterator;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class SetDemo {
    public static void main(String[] args) {
        //链接本地redis服务
        Jedis jedis=new Jedis("localhost");
        System.out.println("链接成功");
        //查看服务是否运行
        System.out.println("服务正在运行"+jedis.ping());
        //清空数据
        jedis.flushDB();

        System.out.println("======================set==========================");

        //向set集合中新增元素
        jedis.sadd("sets", "element001");
        jedis.sadd("sets", "element002");
        jedis.sadd("sets", "element003");
        jedis.sadd("sets", "element004");
        jedis.sadd("sets", "element005");
        jedis.sadd("sets", "element006");

        //输出set集合中的所有元素
        System.out.println("sets集合中的所有元素"+jedis.smembers("sets"));

        //删除集合中的元素
        jedis.srem("sets", "element003");
        System.out.println("删除后的元素"+jedis.smembers("sets"));

        //判断element001是否还存在集合中
        System.out.println(jedis.sismember("sets", "element001"));
        //循环获取集合中的元素
        Set<String> set= jedis.smembers("sets");
        Iterator<String> iterator=set.iterator();
        while (iterator.hasNext()) {
            String setmember=iterator.next();
            System.out.println(setmember);
        }

        //集合运算
        System.out.println("sets1中添加元素element001:"+jedis.sadd("sets1", "element001")); 
        System.out.println("sets1中添加元素element002:"+jedis.sadd("sets1", "element002")); 
        System.out.println("sets1中添加元素element003:"+jedis.sadd("sets1", "element003")); 
        System.out.println("sets1中添加元素element002:"+jedis.sadd("sets2", "element002")); 
        System.out.println("sets1中添加元素element003:"+jedis.sadd("sets2", "element003")); 
        System.out.println("sets1中添加元素element004:"+jedis.sadd("sets2", "element004"));
        //查看set1和set2的交集
        System.out.println("set1和set2的交集"+jedis.sinter("sets1","sets2"));
        //查看set1和set2的并集
        System.out.println("set1和set2的并集"+jedis.sunion("sets1","sets2"));
        //查看set1和set2的差集(sets1中有sets2中没有的元素)
        System.out.println("set1和set2的差集"+jedis.sdiff("sets1","sets2"));
    }
}
  1. 操作zset(不重复,有序)
package com.demo.redis_demo;

import redis.clients.jedis.Jedis;

public class SortedSetDemo {
    public static void main(String[] args) {
        //链接本地redis服务
        Jedis jedis=new Jedis("localhost");
        System.out.println("链接成功");
        //查看服务是否运行
        System.out.println("服务正在运行"+jedis.ping());
        //清空数据
        jedis.flushDB();
        System.out.println("======================zset==========================");
        //向zset中增加元素
        jedis.zadd("zset", 7.0,"element001");
        jedis.zadd("zset", 8.0,"element002");
        jedis.zadd("zset", 2.0,"element003");
        jedis.zadd("zset", 3.0,"element004");

        //输出集合中的所有元素(按照权重排序)
        System.out.println("zset集合中的所有元素:"+jedis.zrange("zset", 0, -1));
        //删除集合中的元素
        jedis.zrem("zset", "element002");
        System.out.println("zset集合中的所有元素:"+jedis.zrange("zset", 0, -1));
        //统计zset中元素的个数
        System.out.println("zset中的元素个数:"+jedis.zcard("zset"));
        //统计zset集合中权重在某个范围内的元素个数
        System.out.println("zset集合中权重在1-5内的元素个数"+jedis.zcount("zset", 1, 5));
        //查看某个元素的权重
        System.out.println("查看element001的权重"+jedis.zscore("zset", "element001"));
        //查看下标1到2范围内的元素值
        System.out.println("查看下标1到2范围内的元素值"+jedis.zrange("zset", 1, 2));
    }
}
  1. 操作hash
package com.demo.redis_demo;

import java.util.HashMap;
import java.util.Map;

import redis.clients.jedis.Jedis;

public class HashDemo {
    public static void main(String[] args) {
        //链接本地redis服务
        Jedis jedis=new Jedis("localhost");
        System.out.println("链接成功");
        //查看服务是否运行
        System.out.println("服务正在运行"+jedis.ping());
        //清空数据
        jedis.flushDB();

        System.out.println("======================hash==========================");

        //新增一个hash
        jedis.hset("hashs", "k001", "value001");
        jedis.hset("hashs", "k002", "value002");
        jedis.hset("hashs", "k003", "value003");
        jedis.hincrBy("hashs", "k004", 4l);
        //一次增加多个
        Map<String, String> map=new HashMap();
        map.put("k005", "dfssa");
        map.put("k006", "val6");
        jedis.hmset("hashs", map);
        System.out.println("hashs中所有的值:"+jedis.hvals("hashs"));
        //删除
        jedis.hdel("hashs", "k001");
        System.out.println("hashs中所有的值:"+jedis.hvals("hashs"));
        //修改
            //给k004增加100
            jedis.hincrBy("hashs", "k004", 100);
            //直接覆盖原来的值
            jedis.hset("hashs", "k003", "value0001");
        System.out.println("hashs中所有的值:"+jedis.hvals("hashs"));
        //查看
            //判断某个元素是否存在
            System.out.println("判断k001是否存在"+jedis.hexists("hashs", "k001"));
            //获取k004对应的值
            System.out.println("k004对应的值"+jedis.hget("hashs", "k004"));
            //获取k003和k004对应的值
            System.out.println("k003和k004对应的值"+jedis.hmget("hashs", "k003","k004"));
            //获取hashs中所有的key
            System.out.println("获取hashs中所有的key"+jedis.hkeys("hashs"));
            //获取hashs中所有的value
            System.out.println("获取hashs中所有的value"+jedis.hvals("hashs"));
    }
}
  1. 操作list
package com.demo.redis_demo;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.SortingParams;

public class ListDemo {
    public static void main(String[] args) {
        //链接本地redis服务
        Jedis jedis=new Jedis("localhost");
        System.out.println("链接成功");
        //查看服务是否运行
        System.out.println("服务正在运行"+jedis.ping());
        //清空数据
        jedis.flushDB();

        //增加一个集合
        jedis.lpush("stringlist", "aa");
        jedis.lpush("stringlist", "bb");
        jedis.lpush("stringlist", "aa");
        jedis.lpush("stringlist", "aa");
        jedis.lpush("stringlist", "ee");
        jedis.lpush("stringlist", "ff");
        jedis.lpush("stringlist", "gg");
        jedis.lpush("stringlist", "hh");
        jedis.lpush("numberlist", "1");
        jedis.lpush("numberlist", "2");
        jedis.lpush("numberlist", "3");
        jedis.lpush("numberlist", "4");
        System.out.println("所有元素-stringlist:"+jedis.lrange("stringlist", 0,-1)); 
        System.out.println("所有元素-numberlist:"+jedis.lrange("numberlist", 0,-1)); 
        //删除列表中的值,jedis.lrem(key, count, value) key--键 count 删除的个个数(有重复的时候后add进去的先被删除,类似出栈)
            //System.out.println("成功删除指定元素个数-stringlist:"+jedis.lrem("stringlist", 2, "aa"));
        //删除区间以外的数据
            //System.out.println("删除下标0-3以外的数据:"+jedis.ltrim("numberlist", 0, 1));
        System.out.println("出栈元素"+jedis.lpop("stringlist"));
        System.out.println("元素出栈后-stringlist:"+jedis.lrange("stringlist", 0, -1));
        //修改列表中指定下标的值
        //jedis.lset("numberlist", 0, "100");
        //数组长度
        System.out.println("stringlist的长度"+jedis.llen("stringlist"));
        //数组排序
        /**
         * list中存字符串时必须指定参数为alpha,如果不使用SortingParams,而是直接使用sort("list"),
         * 会出现"ERR One or more scores can't be converted into double"
         */
        SortingParams sortingParams=new SortingParams();
        sortingParams.alpha();
        sortingParams.limit(0, 11);
        //返回排序后的结果
        System.out.println("返回排序后的结果-stringlist:"+jedis.sort("stringlist", sortingParams));
        System.out.println("返回排序后的结果-stringlist:"+jedis.sort("numberlist", sortingParams));
        // 子串:  start为元素下标,end也为元素下标;-1代表倒数一个元素,-2代表倒数第二个元素
        System.out.println("从第二个开始到结束:"+jedis.lrange("stringlist", 1, -2));
        //获取指定元素下标的值
        System.out.println("获取下标为2的元素:"+jedis.lindex("stringlist", 2));
    }
}

常用命令

1)连接操作命令
quit:关闭连接(connection)
auth:简单密码认证
help cmd: 查看cmd帮助,例如:help quit

2)持久化
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务

3)远程服务控制
info:提供服务器的信息和统计
monitor:实时转储收到的请求
slaveof:改变复制策略设置
config:在运行时配置Redis服务器

4)对value操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个
keyrename(oldname, newname):重命名key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
select(index):按索引查询
move(key, dbindex):移动当前数据库中的key到dbindex数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key

5)String
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string的value
setnx(key, value):添加string,名称为key,值为value
setex(key, time, value):向库中添加string,设定过期时间time
mset(key N, value N):批量设置多个string的值
msetnx(key N, value N):如果所有名称为key i的string都不存在
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串

6)List 
rpush(key, value):在名称为key的list尾添加一个值为value的元素
lpush(key, value):在名称为key的list头添加一个值为value的 元素
llen(key):返回名称为key的list的长度
lrange(key, start, end):返回名称为key的list中start至end之间的元素
ltrim(key, start, end):截取名称为key的list
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值
lrem(key, count, value):删除count个key的list中值为value的元素
lpop(key):返回并删除名称为key的list中的首元素
rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,

              并将该元素添加到名称为dstkey的list的头部

7)Set
sadd(key, member):向名称为key的set中添加元素member
srem(key, member) :删除名称为key的set中的元素member
spop(key) :随机返回并删除名称为key的set中一个元素
smove(srckey, dstkey, member) :移到集合元素
scard(key) :返回名称为key的set的基数
sismember(key, member) :member是否是名称为key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
sunion(key1, (keys)) :求并集
sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
sdiff(key1, (keys)) :求差集
sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
smembers(key) :返回名称为key的set的所有元素
srandmember(key) :随机返回名称为key的set的一个元素

8)Hash
hset(key, field, value):向名称为key的hash中添加元素field
hget(key, field):返回名称为key的hash中field对应的value
hmget(key, (fields)):返回名称为key的hash中field i对应的value
hmset(key, (fields)):向名称为key的hash中添加元素field 
hincrby(key, field, integer):将名称为key的hash中field的value增加integer
hexists(key, field):名称为key的hash中是否存在键为field的域
hdel(key, field):删除名称为key的hash中键为field的域
hlen(key):返回名称为key的hash中元素个数
hkeys(key):返回名称为key的hash中所有键
hvals(key):返回名称为key的hash中所有键对应的value
hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value



https://www.xamrdz.com/database/6m41925779.html

相关文章: