4.redis入门命令以及string类型介绍

原创
2016-06-07 15:22:51 769浏览

Redis提供ping命令来测试客户端与redis连接是否正常,返回pong表示正常。127.0.0.1:6389 pingPONG echo打印命令127.0.0.1:6389 echo hi boy!hi boy! 通过config get与config set,能动态获取与设置redis配置参数,但不是什么参数都能动态设置,如PORT参数就不

Redis提供ping命令来测试客户端与redis连接是否正常,返回pong表示正常。 127.0.0.1:6389> ping PONG
echo打印命令 127.0.0.1:6389> echo "hi boy!" "hi boy!"
通过config get与config set,能动态获取与设置redis配置参数,但不是什么参数都能动态设置,如PORT参数就不行。要修改端口,必须重启数据库。 127.0.0.1:6389> config get port 1) "port" 2) "6389" 127.0.0.1:6389> config set loglevel warning OK select命令选择数据库 redis的数据库,相当于mysql的数据库,也像oracle的schema。 默认redis有16个数据库,编号从0开始,不支持用户自定义数据库名称。 127.0.0.1:6389> config get databases 1) "databases" 2) "16" 可以通过修改databases参数来修改数据库个数,不能动态修改。
keys返回匹配的key列表 redis 127.0.0.1:6379> keys fwy* 1) "fwy2" 2) "fwy" KEYS命令返回当前数据库的所有匹配的key,会遍历所有key来查找,所以当KEY很多时会影响性能,不建议在生产环境用。 ? 匹配一个字符 * 匹配任意个字符 \x转义,例如\?匹配? 127.0.0.1:6389> set "?" fwy OK 127.0.0.1:6389> get "\?" "fwy"
exist判断是否存在这个key 127.0.0.1:6389> exists fwy (integer) 1
del命令删除key 127.0.0.1:6389> del fwy (integer) 1 127.0.0.1:6389> del fwy (integer) 0 因为DEL命令不支持通配符,但是可以配合linux的管道等命令来删除符合规则的key。 redis-cli keys "users*" | xargs redis-cli del 或redis-cli del `redis-cli keys "user:*"`
获得键值的数据类型:type 127.0.0.1:6379> type fwy2 string
dbsize --返回数据库key的条数 quit退出
重命名某个key rename fwy fwy3 如果fwy3已经存在回覆盖掉 renamenx fwy fwy3 如果fwy3存在会失败 设置某个Key在多少秒后过期,即自动被系统删除 expire fwy3 10 ttl 返回某个key还有多长时间过期,返回秒数。 flushdb:清空当前数据库数据 flushall:清空所有数据库数据 randomkey:随机获得已经存在的key
key的名称:由于key 不是binary safe的字符串,所以像"my key"和"mykey\n"这样包含空格和换行的key 是不允许的。
redis 提供五种数据类型:string,hash,list,set 及sorted set string类型是Redis最基本的数据类型,一个键最大能存储512MB。存的是二进制的存储,所以可以包含任何数据,比如JPG图片或者序列化的对象。其他类型只是组织字符串的形式不同。例如,list类型是以列表的形式组织字符串,set是以集合的类型组织字符串而已。
set key1 fwy1 --设置key的值,key已经存在就会覆盖 get key1 --获取key1的值 setnx key1 fwy1 --设置Key的值,如果key已经存在会失败。 getset key1 value1 先获取key1的值,再设置key1的值为value1,如果Key不存在会返回nil,但仍会设置新值。 mget key1 key2 key3..keyn 一次获取多个key的值,如果对应key不存在会返回nil redis 127.0.0.1:6379> mget fwy4 fwy2 fwy 1) "afwe" 2) (nil) 3) "22" mset fwy4 aaa fwy2 bbb fwy ccc 一次设置多个key的值, msetnx key1 value1 key2 values --与上面一样,但不会覆盖已有值。 incr 对一个value是数字的增1,不是整数的string会报错,incr一个不存在的值会将value设为1。 当我们用type看返回类型是,仍然是string。只是它内部有函数去判断这个string是否数字。 decr 与上面效果相反。 incrby key1 5 对key加上指定值,key不存在时会设置并认为key值原来为0 decrby key1 5 与上面相反,其实用上面的incrby,值为负数能实现相同的效果 incrbyfloat bus 2.7 为一个Key增加一个双精度浮点数 127.0.0.1:6389> incrbyfloat bus 1e+2 "100" strlen 返回string长度 127.0.0.1:6389> set fwy 你好 OK 127.0.0.1:6389> get fwy "\xe4\xbd\xa0\xe5\xa5\xbd" 127.0.0.1:6389> strlen fwy (integer) 6 Redis接收到的是使用UTF-8编码的中文。
append可以往一个key追加value值。 redis 127.0.0.1:6379> exists fwy (integer) 0 redis 127.0.0.1:6379> append fwy "hello " (integer) 6 redis 127.0.0.1:6379> append fwy " world" (integer) 12 redis 127.0.0.1:6379> get fwy "hello world" substr求子串,一个例子可以证明一切。 redis 127.0.0.1:6379> set s "This is a string" OK redis 127.0.0.1:6379> substr s 0 3 "This" redis 127.0.0.1:6379> substr s -3 -1 "ing" redis 127.0.0.1:6379> substr s 0 -1 "This is a string" redis 127.0.0.1:6379> substr s 9 10000 " string" del删除key redis 127.0.0.1:6379> del fwy4 fwy5 (integer) 1 我这里fwy5是不存在的,所以只影响了1行
位操作 set foo bar bar3个字母对应的ASCII码是98,97,114.转换成二进制后分别为1100010、1100001、1110010 127.0.0.1:6389> getbit foo 0 (integer) 0 127.0.0.1:6389> getbit foo 6 (integer) 1 foo的位下标从左到右,从0开始算。如果要获取的超出了key的二进制位,getbit foo 100000将返回0. setbit命令可以设置二进制位,返回值是该位置的旧值。如我们将foo键值设置为aar,将foo键的二进制位的索引第6位设为0,第7位设为1即可。 setbit foo 6 0 setbit foo 7 1 127.0.0.1:6389> get foo "aar" bitcount foo 获得字符串中二进制位是1的个数 bitop命令对多个string进行位运算,支持and,or,xor,not等。 set foo1 bar set foo2 aar bitop or destkey foo1 foo2 127.0.0.1:6389> get destkey "car"

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。