d274724c48176e4b1b9a94a5ee1983e3bb254c95
[awesomized/libmemcached] / docs / man / libmemcached_examples.3
1 .TH "LIBMEMCACHED_EXAMPLES" "3" "April 09, 2011" "0.47" "libmemcached"
2 .SH NAME
3 libmemcached_examples \- libmemcached Documentation
4 .
5 .nr rst2man-indent-level 0
6 .
7 .de1 rstReportMargin
8 \\$1 \\n[an-margin]
9 level \\n[rst2man-indent-level]
10 level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
11 -
12 \\n[rst2man-indent0]
13 \\n[rst2man-indent1]
14 \\n[rst2man-indent2]
15 ..
16 .de1 INDENT
17 .\" .rstReportMargin pre:
18 . RS \\$1
19 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
20 . nr rst2man-indent-level +1
21 .\" .rstReportMargin post:
22 ..
23 .de UNINDENT
24 . RE
25 .\" indent \\n[an-margin]
26 .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
27 .nr rst2man-indent-level -1
28 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
29 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
30 ..
31 .\" Man page generated from reStructeredText.
32 .
33 .sp
34 Examples for libmemcached
35 .SH DESCRIPTION
36 .sp
37 For full examples, test cases are found in tests/*.c in the main
38 distribution. These are always up to date, and are used for each test run of
39 the library.
40 .SH CREATING AND FREEING STRUCTURE
41 .sp
42 .nf
43 .ft C
44 memcached_st *memc;
45 memcached_return_t rc;
46
47 memc= memcached_create(NULL);
48 \&...do stuff...
49 memcached_free(memc);
50 .ft P
51 .fi
52 .sp
53 The above code would create a connection and then free the connection when
54 finished.
55 .SH CONNECTING TO SERVERS
56 .sp
57 .nf
58 .ft C
59 const char *config_string= "\-\-SERVER=host10.example.com \-\-SERVER=host11.example.com \-\-SERVER=host10.example.com"
60 memcached_st *memc= memcached_create_with_options(config_string, strlen(config_string);
61 {
62 ...
63 }
64 memcached_free(memc);
65 .ft P
66 .fi
67 .sp
68 In the above code you create a \fBmemcached_st\fP object with three server by making use of \fImemcached_create_with_options(3)\fP.
69 .SH ADDING A VALUE TO THE SERVER
70 .sp
71 .nf
72 .ft C
73 char *key= "foo";
74 char *value;
75 size_t value_length= 8191;
76 unsigned int x;
77
78 value = (char*)malloc(value_length);
79 assert(value);
80
81 for (x= 0; x < value_length; x++)
82 value[x] = (char) (x % 127);
83
84 for (x= 0; x < 1; x++)
85 {
86 rc= memcached_set(memc, key, strlen(key),
87 value, value_length,
88 (time_t)0, (uint32_t)0);
89 assert(rc == MEMCACHED_SUCCESS);
90 }
91
92 free(value);
93 .ft P
94 .fi
95 .sp
96 It is best practice to always look at the return value of any operation.
97 .SH FETCHING MULTIPLE VALUES
98 .sp
99 .nf
100 .ft C
101 memcached_return_t rc;
102 char *keys[]= {"fudge", "son", "food"};
103 size_t key_length[]= {5, 3, 4};
104 unsigned int x;
105 uint32_t flags;
106
107 char return_key[MEMCACHED_MAX_KEY];
108 size_t return_key_length;
109 char *return_value;
110 size_t return_value_length;
111
112 rc= memcached_mget(memc, keys, key_length, 3);
113
114 x= 0;
115 while ((return_value= memcached_fetch(memc, return_key, &return_key_length,
116 &return_value_length, &flags, &rc)))
117 {
118 free(return_value);
119 x++;
120 }
121 .ft P
122 .fi
123 .sp
124 Notice that you freed values returned from memcached_fetch(). The define
125 \fBMEMCACHED_MAX_KEY\fP is provided for usage.
126 .SH HOME
127 .sp
128 To find out more information please check:
129 \fI\%https://launchpad.net/libmemcached\fP
130 .SH SEE ALSO
131 .sp
132 \fImemcached(1)\fP
133 .SH AUTHOR
134 Brian Aker
135 .SH COPYRIGHT
136 2011, Brian Aker DataDifferential, http://datadifferential.com/
137 .\" Generated by docutils manpage writer.
138 .\"
139 .