zoukankan      html  css  js  c++  java
  • Redis命令

        【本地启动】
        cd 进入到解压的主目录 输入  redis-server.exe  redis.windows.conf  打开服务 
        cd 进入到解压的主目录 输入  redis-cli.exe 打开客户端
        链接服务器  redis-cli.exe -h 192.168.2.92 -p 6379   要在主目录下才可以
        连接redis 不需要 用户名和密码  可以自行设定
    
        【登录linux下的redis】
        [root@sh-192-168-0-227 bin]# ps -ef|grep redis
        root      3063     1  0 Jun15 ?        00:18:34 /usr/local/bin/redis-server *:6379                        
        root     17894 14186  0 14:21 pts/4    00:00:00 grep redis
        [root@sh-192-168-0-227 bin]# cd /usr/local/bin/
        [root@sh-192-168-0-227 bin]# ./redis-cli 
        127.0.0.1:6379> dbsize
        (integer) 27226
        127.0.0.1:6379> ping
        PONG
        127.0.0.1:6379> 
        在当期目录下 连接服务
        ./redis-cli -h 192.168.100.34 -p 6379 
        192.168.100.34:6379>
         
        CONFIG SET  requirepass "mypass"
        # 设置密码
        redis> CONFIG SET requirepass secret_password   # 将密码设置为 secret_password
        OK
        redis> QUIT                                     # 退出再连接,让新密码对客户端生效
        [huangz@mypad]$ redis
        redis> PING                                     # 未验证密码,操作被拒绝
        (error) ERR operation not permitted
        redis> AUTH wrong_password_testing              # 尝试输入错误的密码
        (error) ERR invalid password
        redis> AUTH secret_password                     # 输入正确的密码
        OK
        redis> PING                                     # 密码验证成功,可以正常操作命令了
        PONG
         
         
        # 清空密码
        redis> CONFIG SET requirepass ""   # 通过将密码设为空字符来清空密码
        OK
        redis> QUIT
        $ redis                            # 重新进入客户端
        redis> PING                        # 执行命令不再需要密码,清空密码操作成功
        PONG
         
        移动数据库里面的数据
        select 0-15
          
        选择数据库
        select 0
         
        set age 20
        get age 
        20
         
        move age 1integer)1已经移除成功
        select 1
        get age
        20
         
        expire age 300过期时间
        ttl age 查看过期时间  
        移除过期时间persist age
        ping 测试连接是否存活
        PONG
        quit 退出客户端
        info 服务器信息
        multi保存队列在里面 
        exec依次执行命令
        discard取消队列里面所有的命令(事务回滚)
        RDB持久化
        命令SAVE BGSAVE(会派生好出一个子进程,然后由子进程负责创建RDB 文件,父进程继续处理命令请求)
    
        登陆表redis数据
    
      
        Redis命令总结 
     
        keys * 取出当前匹配的所有key
        如 : keys hq:0*
     
        > exists larry
         (integer) 0
        当前的key是否存在
     
        del lv  删除当前key
     
        expire 设置过期时间
     
        > move larry ad4
         (integer) 1
        移动larry键值对到ad4数据库
     
        > persist lv
         (integer) 1
        移除当前key的过期时间
     
        randomkey 随机返回一个key
     
        rename 重命名key
     
        type 返回值的数据类型
     
         type testlist
         list
     
         > ping
         PONG
        测试连接是否还在
     
        >echo name
        "larry"
        打印
     
        > select ad4databank
         OK
        数据库切换
     
        当前数据库中key的数量
     
        > info
        服务器基本信息
     
        连接操作相关的命令
        quit:关闭连接(connection)
        auth:简单密码认证
     
        持久化
        save:将数据同步保存到磁盘
        bgsave:将数据异步保存到磁盘
        lastsave:返回上次成功将数据保存到磁盘的Unix时戳
        shundown:将数据同步保存到磁盘,然后关闭服务
     
     
        远程服务控制
        info:提供服务器的信息和统计
        monitor:实时转储收到的请求
        slaveof:改变复制策略设置
        config:在运行时配置Redis服务器
          
        ===============================================================> 
        对value操作的命令
        type(key):    返回值的类型
        exists(key):  确认一个key是否存在
        dbsize:       返回当前数据库中key的数目
        del(key):     删除一个key
        keys(pattern):返回满足给定pattern的所有key
        randomkey:    随机返回key空间的一个
        keyrename(oldname, newname):重命名key
        expire:      设定一个key的活动时间(s)
        ttl:         获得一个key的活动时间
        select(index):按索引查询
        move(key, dbindex):移动当前数据库中的key到dbindex数据库
        flushdb:     删除当前选择数据库中的所有key
        flushall:    删除所有数据库中的所有key
     
        *********************************************【对String操作的命令】******************************************************
        string是最简单的类型,一个Key对应一个Value。
        string类型是二进制安全的,redis的string可以包含任何数据。
     
        1. set(key, value):设置一个string类型的key和value(重复添加值会覆盖)           
             如: set name2  Tom
        2. get(key):获取key对应的value值                                         
             如: get name2
        3. getset(key, value):给名称为key的string赋予上一次的value
        4. mget(key1, key2,…, key N):返回库中多个string的value
        5. setnx(key, value):设置一个key的值string类型的value ,key值不存在则添加,key值存在则返回0:                      
             如: set name  com                       
        6. setex(key, time, value):设置一个键值key的有效期time                           
             如: setex col 7 red 
        7. setrange(key, value): 设置指定key的value值的子字符串:
        8. strlen(key):  取指定key的value值的长度:        如:127.0.0.1:6379> strlen name
        9. mset(key N, value N):一次设置多个key的值
        10. mget (key1,key2,key3..) 一次获取多个key的值
            如:127.0.0.1:6379> mset name tom age 25 sex man
                OK
                127.0.0.1:6379> mget name age sex
                1) "tom"
                2) "25"
                3) "man"
        11. msetnx(key N, value N):设置多个value、不覆盖已存在的key:
            如 127.0.0.1:6379> msetnx name tom age 25 sex man email tom13@163.com
                (integer) 1
                127.0.0.1:6379> mget name age sex email
                1) "tom"
                2) "25"
                3) "man"
                4) "tom13@163.com"
        12. getrange(key, 起始位置,结束位置)
            如:127.0.0.1:6379> get name
                "ma.fenglei"
                127.0.0.1:6379> getrange  name 3 -1
                "fenglei"
        13. incr(key):对key的值做加加操作,并返回新的值 (类似于i++)
            如:127.0.0.1:6379> get age
                "25"
                127.0.0.1:6379> incr age
                (integer) 26
                127.0.0.1:6379> incr age
                (integer) 27
        14. incrby(key, integer):加指定值,key不存在设置key,并认为原来的值为0:
            如:127.0.0.1:6379> get age
                "27"
                127.0.0.1:6379> incrby age 5
                (integer) 32
                127.0.0.1:6379> incrby age 5
                (integer) 37
        15. decr(key):对key的值做减减操作:
            如:127.0.0.1:6379> get age
                "37"
                127.0.0.1:6379> decr age
                (integer) 36
                127.0.0.1:6379> decr age
                (integer) 35
        16. decrby(key, integer):同decr类似,减<指定值>:
            如:127.0.0.1:6379> get age
                "35"
                127.0.0.1:6379> decrby age 5
                (integer) 30
                127.0.0.1:6379> decrby age 5
                (integer) 25
        17. append(key, value):给指定的key的字符串追加value,返回新字符串值的长度:
            如:127.0.0.1:6379> get name
                "fenglei"
                127.0.0.1:6379> append name @qq.com
                (integer) 14
                127.0.0.1:6379> get name
                "fenglei@qq.com"
        18. substr(key, start, end):接取字符串
            如:127.0.0.1:6379> get name
                "fenglei@qq.com"
                127.0.0.1:6379> substr name 2 9
                "nglei@qq"
                127.0.0.1:6379>
        *********************************************end******************************************************************
     
     
         
        *********************************************【对List操作的命令】******************************************************
        list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。
     
        1. lpush(key, value):在key对应list的头部添加字符串元素:
             如:127.0.0.1:6379> lpush mylist world
                 (integer) 1
                 127.0.0.1:6379> lpush mylist hello
                 (integer) 2
                 127.0.0.1:6379> lrange mylist 0 -1
                 1) "hello"
                 2) "world"
                 127.0.0.1:6379>
        2. rpush(key, value):在key对应list的尾部添加字符串元素:  
             如:127.0.0.1:6379> rpush mylist2 hello
                 (integer) 1
                 127.0.0.1:6379> rpush mylist2 world
                 (integer) 2
                 127.0.0.1:6379> lrange mylist2 0 -1
                 1) "hello"
                 2) "world"
        3. lrange(key, start, end):返回名称为key的list中start至end之间的元素
            如:127.0.0.1:6379> lrange mylist 0 -1  返回key为mylist的所有的值
        4. llen(key):返回名称为key的list的长度
        5. linsert  在key对应list的特定位置之前或之后添加字符串元素:
            如:127.0.0.1:6379> lrange mylist3 0 -1
                1) "hello"
                2) "world"
                127.0.0.1:6379> linsert mylist3 before world there
                (integer) 3
                127.0.0.1:6379> lrange mylist3 0 -1
                1) "hello"
                2) "there"
                3) "world"
        6. ltrim(key, start, end):截取名称为key的list
            如:127.0.0.1:6379> lrange mylist8 0 -1
                1) "one"
                2) "two"
                3) "three"
                4) "four"
                127.0.0.1:6379> ltrim mylist8 1 -1
                OK
                127.0.0.1:6379> lrange mylist8 0 -1
                1) "two"
                2) "three"
                3) "four"
        7. lindex(key, index):返回名称为key的list中index位置的元素:
            如:127.0.0.1:6379> lrange mylist5 0 -1
                1) "foo]"
                2) "hello"
                127.0.0.1:6379> lindex mylist5 0
                "foo]"
                127.0.0.1:6379> lindex mylist5 1
                "hello"
                127.0.0.1:6379>
        8. lset(key, index, value):设置list中指定下标的元素值(下标从0开始)
            如:127.0.0.1:6379> lrange mylist4 0 -1
                1) "one"
                2) "two"
                3) "three"
                127.0.0.1:6379> lset mylist4 0 four
                OK
                127.0.0.1:6379> lrange mylist4 0 -1
                1) "four"
                2) "two"
                3) "three"
        9. lrem(key, count, value):从key对应list中删除count个和value相同的元素。
           count>0时,按从头到尾的顺序删除,count<0时,按从尾到头的顺序删除,count=0时,删除全部,
            如:127.0.0.1:6379> lrange mylist5 0 -1
                1) "hello"
                2) "hello"
                3) "foo]"
                4) "hello"
                127.0.0.1:6379> lrem mylist5 2 hello
                (integer) 2
                127.0.0.1:6379> lrange mylist5 0 -1
                1) "foo]"
                2) "hello"
        10. lpop 从list的头部删除元素,并返回删除元素:          
             如:127.0.0.1:6379> lrange mylist 0 -1
                1) "five"
                2) "world"
                127.0.0.1:6379> lpop mylist
                "five"
                127.0.0.1:6379> lrange mylist 0 -1
                1) "world"
        11. rpop(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的头部
     
        *********************************************end******************************************************************
     
     
     
     
     
       *********************************************【对set操作的命令】******************************************************
     
        对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的一个元素
     
       *********************************************【对hash操作的命令】******************************************************
     
        查看 一个
        192.168.0.227:6379> type  "CG:USER:19842"
        hash
        192.168.0.227:6379> hkeys  "CG:USER:19842"
        1) "usableDecks"
        2) "id"
        3) "battleDeck"
        4) "nicknm"
        5) "prepareHeros"
        192.168.0.227:6379> hget  "CG:USER:19842" "usableDecks"
        "{"0":{"1":1,"2":2,"4":1,"5":1,"6":1,"9":1,"11":1,"15":1,"18
        ":2,"20":1,"22":2,"23":2,"24":1,"27":2,"30":2,"32":2,"33":1,"40
        ":1,"44":1,"45":2,"47":2}}"
        192.168.0.227:6379>
     
        redis.hset("hashs", "key001", "value001");
        对Hash操作的命令  这里key 为设置的键
     
        1. hset(key, field, value):向名称为key的hash中添加元素field的值value,
           如果哈希表中域字段已经存在且旧值已被新值覆盖
            如:127.0.0.1:6379> hset myhash fp foo
                (integer) 1
                127.0.0.1:6379> hget myhash fp
                "foo"
                127.0.0.1:6379> hset myhash google www.google.com
                (integer) 1
                127.0.0.1:6379> hkeys myhash
                1) "fp"
                2) "google"
        2. hkeys(key): 获取哈希表中的所有的键。
            如:127.0.0.1:6379> hset myhash field1 foo
                (integer) 1
                127.0.0.1:6379> hset myhash field2 bar
                (integer) 1
                127.0.0.1:6379> hkeys myhash
                1) "field1"
                2) "field2"
                127.0.0.1:6379> hget myhash field2
                "bar"
                127.0.0.1:6379> 
        2. hget(key, field):返回名称为key的hash中field对应的value
        3. hmset(key, (fields)):同时将多个 field-value (字段-值)对设置到哈希表中。
            如: 127.0.0.1:6379> hmset myhash2 name tom age 28
                 OK
                 127.0.0.1:6379> hget myhash2 name
                 "tom"
                 127.0.0.1:6379> hget myhash2 age
                 "28"
        4. hmget(key, (fields)):获取全部指定的hash field。
             如:127.0.0.1:6379> hkeys myhash2
                 1) "name"
                 2) "age"
                 127.0.0.1:6379> hmget myhash2 name
                 1) "tom"
                 127.0.0.1:6379> hmget myhash2 name age
                 1) "tom"
                 2) "28"
                 127.0.0.1:6379>
        5. hincrby(key, field, integer):将名称为key的hash中field的value增加integer
             如:127.0.0.1:6379> hset user:002 age 29
                 (integer) 1
                 127.0.0.1:6379> hget user:002 age
                 "29"
                 127.0.0.1:6379> hincrby user:002 age 5
                 (integer) 34
                 127.0.0.1:6379> hget user:002 age
                 "34"
                 127.0.0.1:6379> hkeys user:002
                 1) "age"
        6. hexists(key, field):测试指定field在hash中是否存在。返回1为存在,0为不存在
             如:127.0.0.1:6379> hexists user:002 name
                 (integer) 0
                 127.0.0.1:6379> hexists user:002 age
                 (integer) 1
        7. hdel(key, field):删除指定hash的field。
        8. hlen(key):返回名称为key的hash中元素个数
        9. hvals(key):返回hash的所有value。
             如:127.0.0.1:6379> hvals user:002
                 1) "34"
                 2) "tom]"
                 127.0.0.1:6379> hkeys user:002
                 1) "age"
                 2) "name"
        10. hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
             如:127.0.0.1:6379> hkeys user:002
                 1) "age"
                 2) "name"
                 127.0.0.1:6379> hgetall user:002
                 1) "age"
                 2) "34"
                 3) "name"
                 4) "tom]"
     
     
     
     
        Redis文件夹有以下几个文件
           redis-server.exe:服务程序
           redis-check-dump.exe:本地数据库检查
           redis-check-aof.exe:更新日志检查
           redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).
          目前只用了 redis-server.exe,它是启动redis服务的,它在服务器上执行就可以了,我们可以写个BAT文件让它去执行autorunRedis.bat 
     
    
     --------------------------------------------------------------------------------------------------------------------------------
    
     
     
     package com.aug3.storage.redisclient.practice;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.Pipeline;
    
    import java.util.*;
    
    /**
     * Created by fenglei.ma on 2018/3/30. 16:37
     */
    public class RedisTest1 {
    
    
        public static void main(String[] args) {
            Jedis redis = new Jedis("192.168.100.34", 6379);
    
            /* -----------------------------------------------------------------------------------------------------------  */
    
            //KEYS 操作
            Set keys = redis.keys("*");//列出所有的key,查找特定的key如:redis.keys("foo")
            Iterator t1 = keys.iterator();
            while (t1.hasNext()) {
                Object obj1 = t1.next();
                System.out.println(obj1);
            }
    
            //DEL 移除给定的一个或多个key。如果key不存在,则忽略该命令。
            redis.del("name1");
    
            //TTL 返回给定key的剩余生存时间(time to live)(以秒为单位)
            redis.ttl("foo");
    
            //PERSIST key 移除给定key的生存时间。
            redis.persist("foo");
    
            //EXISTS 检查给定key是否存在。
            redis.exists("foo");
    
            //MOVE key db  将当前数据库(默认为0)的key移动到给定的数据库db当中。如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定key,或者key不存在于当前数据库,那么MOVE没有任何效果。
            redis.move("foo", 1);//将foo这个key,移动到数据库1
    
            //RENAME key newkey  将key改名为newkey。当key和newkey相同或者key不存在时,返回一个错误。当newkey已经存在时,RENAME命令将覆盖旧值。
            redis.rename("foo", "foonew");
    
            //TYPE key 返回key所储存的值的类型。
            System.out.println(redis.type("foo"));//none(key不存在),string(字符串),list(列表),set(集合),zset(有序集),hash(哈希表)
    
            //EXPIRE key seconds 为给定key设置生存时间。当key过期时,它会被自动删除。
            redis.expire("foo", 5);//5秒过期
            //EXPIREAT EXPIREAT的作用和EXPIRE一样,都用于为key设置生存时间。不同在于EXPIREAT命令接受的时间参数是UNIX时间戳(unix timestamp)。
    
            //一般SORT用法 最简单的SORT使用方法是SORT key。
            redis.lpush("sort", "1");
            redis.lpush("sort", "4");
            redis.lpush("sort", "6");
            redis.lpush("sort", "3");
            redis.lpush("sort", "0");
    
            List list = redis.sort("sort");//默认是升序
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
    
            /* -----------------------------------------------------------------------------------------------------------  */
            //   STRING 操作
    
            //SET key value将字符串值value关联到key。
            redis.set("name", "wangjun1");
            redis.set("id", "123456");
            redis.set("address", "guangzhou");
    
            //SETEX key seconds value将值value关联到key,并将key的生存时间设为seconds(以秒为单位)。
            redis.setex("foo", 5, "haha");
    
            //MSET key value [key value ...]同时设置一个或多个key-value对。
            redis.mset("haha", "111", "xixi", "222");
    
            //redis.flushAll();清空所有的key
            System.out.println(redis.dbSize());//dbSize是多少个key的个数
    
            //APPEND key value如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。
            redis.append("foo", "00");//如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。
    
            //GET key 返回key所关联的字符串值
            redis.get("foo");
    
            //MGET key [key ...] 返回所有(一个或多个)给定key的值
            List list2 = redis.mget("haha", "xixi");
            for (int i = 0; i < list2.size(); i++) {
                System.out.println(list2.get(i));
            }
    
            //DECR key将key中储存的数字值减一。
            //DECRBY key decrement将key所储存的值减去减量decrement。
            //INCR key 将key中储存的数字值增一。
            //INCRBY key increment 将key所储存的值加上增量increment。
    
    
            /* -----------------------------------------------------------------------------------------------------------  */
            //  Hash 操作
    
            //HSET key field value将哈希表key中的域field的值设为value。
            redis.hset("website", "google", "www.google.cn");
            redis.hset("website", "baidu", "www.baidu.com");
            redis.hset("website", "sina", "www.sina.com");
    
            //HMSET key field value [field value ...] 同时将多个field - value(域-值)对设置到哈希表key中。
            Map map = new HashMap();
            map.put("cardid", "123456");
            map.put("username", "jzkangta");
            redis.hmset("hash", map);
    
            //HGET key field返回哈希表key中给定域field的值。
            System.out.println(redis.hget("hash", "username"));
    
            //HMGET key field [field ...]返回哈希表key中,一个或多个给定域的值。
            List list3 = redis.hmget("website", "google", "baidu", "sina");
            for (int i = 0; i < list3.size(); i++) {
                System.out.println(list3.get(i));
            }
    
            //HGETALL key返回哈希表key中,所有的域和值。
            Map<String, String> map1 = redis.hgetAll("hash");
            for (Map.Entry entry : map1.entrySet()) {
                System.out.print(entry.getKey() + ":" + entry.getValue() + "	");
            }
    
            //HDEL key field [field ...]删除哈希表key中的一个或多个指定域。
            //HLEN key 返回哈希表key中域的数量。
            //HEXISTS key field查看哈希表key中,给定域field是否存在。
            //HINCRBY key field increment为哈希表key中的域field的值加上增量increment。
            //HKEYS key返回哈希表key中的所有域。
            //HVALS key返回哈希表key中的所有值。
    
    
            /* -----------------------------------------------------------------------------------------------------------  */
            // LIST 操作
            //LPUSH key value [value ...]将值value插入到列表key的表头。
            redis.lpush("list", "abc");
            redis.lpush("list", "xzc");
            redis.lpush("list", "erf");
            redis.lpush("list", "bnh");
    
            //LRANGE key start stop返回列表key中指定区间内的元素,区间以偏移量start和stop指定。下标(index)参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以1表示列表的第二个元素,以此类推。你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。
            List list4 = redis.lrange("list", 0, -1);
            for (int i = 0; i < list4.size(); i++) {
                System.out.println(list4.get(i));
            }
    
            //LLEN key返回列表key的长度。
            //LREM key count value根据参数count的值,移除列表中与参数value相等的元素。
    
            /* -----------------------------------------------------------------------------------------------------------  */
            //  SET 操作
            //SADD key member [member ...]将member元素加入到集合key当中。
            redis.sadd("testSet", "s1");
            redis.sadd("testSet", "s2");
            redis.sadd("testSet", "s3");
            redis.sadd("testSet", "s4");
            redis.sadd("testSet", "s5");
    
            //SREM key member移除集合中的member元素。
            redis.srem("testSet", "s5");
    
            //SMEMBERS key返回集合key中的所有成员。
            Set set = redis.smembers("testSet");
            Iterator t12 = set.iterator();
            while (t1.hasNext()) {
                Object obj1 = t12.next();
                System.out.println(obj1);
            }
    
            //SISMEMBER key member判断member元素是否是集合key的成员。是(true),否则(false)
            System.out.println(redis.sismember("testSet", "s4"));
    
        }
    
        public void testredis() {
            System.out.println("start");
    
            Jedis redis = new Jedis("192.168.100.34", 6379);
            Pipeline pipelined = redis.pipelined();
            pipelined.set("test:key_569", "val1154564654653553");
            pipelined.sync();
            System.out.println("读取" + redis.get("test:key_569"));
            System.out.println();
    
            String value = String.format("%s|%s|%s|%s|%s", new Object[]{"10:38:51", "12.36", "385234.0", "3832461.32", "10.03"});
            pipelined.rpush("test:practice5", value);
            pipelined.sync();
            System.out.println("写入数据完成");
            System.out.println("读取" + redis.rpop("test:practice5"));
            System.out.println();
    
            Map<String, String> ssMap = new HashMap<String, String>();
            ssMap.put("name", "fangshijiu");
            ssMap.put("address", "浦江镇");
            ssMap.put("salary", "8000");
            ssMap.put("age", "28");
            pipelined.hmset("test:practice4", ssMap);
            pipelined.sync();
            System.out.println("写入数据完成");
    
            System.out.println("读取");
            Map<String, String> stringStringMap = redis.hgetAll("test:practice4");
            for (String key : stringStringMap.keySet()) {
                System.out.println(key + " : " + stringStringMap.get(key));
            }
    
            System.out.println("end");
        }
    
    
    }
  • 相关阅读:
    第 15 章 标签页和工具提示插件
    第 14 章 下拉菜单和滚动监听插件
    第 13 章 模态框插件
    第 12 章 列表组面板和嵌入组件
    第 11 章 进度条媒体对象和 Well 组件
    第 10 章 巨幕页头缩略图和警告框组件
    第 9 章 路径分页标签和徽章组件
    lock()与lockInterruptibly()的区别
    MySQL中Innodb的聚簇索引和非聚簇索引
    MySQL使用可重复读作为默认隔离级别的原因
  • 原文地址:https://www.cnblogs.com/xiaolei2017/p/8676091.html
Copyright © 2011-2022 走看看